Persistent Global General Storage Registers

Zynq UltraScale plus MPSoC Power Management

Release Date
2023-04-24

Four 32-bit persistent global storage registers are available for general use. Their values are preserved across after software reboots.

For ZynqMP

Device Name MMIO Register MMIO Access Valid Value Range
<firmware-node>/pggs0 PERS_GLOB_GEN_STORAGE0 0xFFD80050 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs1 PERS_GLOB_GEN_STORAGE1 0xFFD80054 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs2 PERS_GLOB_GEN_STORAGE2 0xFFD80058 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs3 PERS_GLOB_GEN_STORAGE3 0xFFD8005C 0x00000000 - 0xFFFFFFFF

For Versal

Device Name MMIO Register MMIO Access Valid Value Range
<firmware-node>/pggs0 PMC_PERS_GLOB_GEN_STORAGE3 0xF111005C 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs1 PMC_PERS_GLOB_GEN_STORAGE4 0xF1110060 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs2 PSM_PERS_GLOB_GEN_STORAGE0 0xFFC90050 0x00000000 - 0xFFFFFFFF
<firmware-node>/pggs3 PSM_PERS_GLOB_GEN_STORAGE1 0xFFC90054 0x00000000 - 0xFFFFFFFF

Read the value of a persistent global storage register:

$ cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
# Note: For version before 2022.1
# cat /sys/firmware-zynqmp/pggs0

Write the mask and value of a persistent global storage register:

$ echo 0xFFFFFFFF 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0

# Note: For version before 2022.1
# echo 0xFFFFFFFF 0x1234ABCD > /sys/firmware-zynqmp/pggs0