Persistent Global General Storage Registers - 2020.2 English

Versal ACAP System Software Developers Guide (UG1304)

Document ID
Release Date
2020.2 English

Four 32-bit persistent global storage registers are available for general use. Their values are preserved after software reboots. The following table lists the persistent global general storage registers.

Table 1. Persistent General Global Storage Registers
Device Node MMIO Register Valid Value Range
/sys/firmware/zynqmp/pggs0 PMC_GLOBAL_PERS_GLOB_GEN_STORAGE3 0x00000000 to 0xFFFFFFFF
/sys/firmware/zynqmp/pggs1 PMC_GLOBAL_PERS_GLOB_GEN_STORAGE4 0x00000000 to 0xFFFFFFFF
/sys/firmware/zynqmp/pggs2 PSM_GLOBAL_PERS_GLOB_GEN_STORAGE0 0x00000000 to 0xFFFFFFFF
/sys/firmware/zynqmp/pggs3 PSM_GLOBAL_PERS_GLOB_GEN_STORAGE1 0x00000000 to 0xFFFFFFFF

To read the value of a persistent global storage register:

cat /sys/firmware/zynqmp/pggs0

To write the mask and value of a persistent global storage register:

echo 0xFFFFFFFF 0x1234ABCD > /sys/firmware/zynqmp/pggs0

The following registers are reserved.

Important: Xilinx recommends that you do not use reserved registers.
Table 2. Reserved Storage Registers
Register Description


Contains the ROM execution time stamp. When PLM is active, it reads these two registers to obtain the execution time of ROM. Registers can be used after loading boot PDI.
PMC_GLOBAL_GLOBAL_GEN_STORAGE2 Contains device security status, updated by ROM. PLM uses this register to determine if KAT needs to be performed.
PMC_GLOBAL_GLOBAL_GEN_STORAGE4 Used by PLM to store ATF handoff parameter address pointer.

Reserved for XilPM to save the status of each power domain initialization.

PMC_GLOBAL_PERS_GLOB_GEN_STORAGE1 Not yet used in PLM but intended for data sharing between PLM and debugger.