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