Clock Gating
Stop device clocks when they are not being used (also called Common Clock Framework.) The kernel configurations required are:
- Common Clock Framework
- [*] Support for AMD ZynqMP Ultrascale+ clock controllers
Runtime PM
Power off devices when they are not being used. Note that individual drivers may or may not support run-time power management. The kernel configurations required are:
- Power management options
- [*] Suspend to RAM and standby
- Device Drivers
- SoC (System-on-a-chip) specific drivers
- [*] AMD SoC drivers
- [*] Enable AMD Zynq MPSoC Power Management driver
- [*] Enable Zynq MPSoC generic PM domains
- [*] AMD SoC drivers
- SoC (System-on-a-chip) specific drivers
Global General Storage Registers
Four 32-bit storage registers are available for general use. Their values are not preserved across after software reboots. The following table lists the global general storage registers.
Device Node | MMIO Register | MMIO Address | Valid Value Range |
---|---|---|---|
/sys/firmware/zynqmp/ggs0 | GLOBAL_GEN_STORAGE0 | 0xFFD80030 | 0x00000000 - 0xFFFFFFFF |
/sys/firmware/zynqmp/ggs1 | GLOBAL_GEN_STORAGE1 | 0xFFD80034 | 0x00000000 - 0xFFFFFFFF |
/sys/firmware/zynqmp/ggs2 | GLOBAL_GEN_STORAGE2 | 0xFFD80038 | 0x00000000 - 0xFFFFFFFF |
/sys/firmware/zynqmp/ggs3 | GLOBAL_GEN_STORAGE3 | 0xFFD8003C | 0x00000000 - 0xFFFFFFFF |
Read the value of a global storage register:
$cat /sys/firmware/zynqmp/ggs0
Write the mask and value of a global storage register:
$echo 0xFFFFFFFF 0x1234ABCD > /sys/firmware/zynqmp/ggs0
Persistent Global General Storage Registers
Four 32-bit persistent global storage registers are available for general use. Their values are preserved across after software reboots. The lists the persistent global general storage registers.
Device Node | MMIO Register | MMIO Address | Valid Value Range |
---|---|---|---|
/sys/firmware/zynqmp/pggs0 | PERS_GLOB_GEN_STORAGE0 | 0xFFD80050 | 0x00000000 -0xFFFFFFFF |
/sys/firmware/zynqmp/pggs1 | PERS_GLOB_GEN_STORAGE1 | 0xFFD80054 | 0x00000000 -0xFFFFFFFF |
/sys/firmware/zynqmp/pggs2 | PERS_GLOB_GEN_STORAGE2 | 0xFFD80058 | 0x00000000 -0xFFFFFFFF |
/sys/firmware/zynqmp/pggs3 | PERS_GLOB_GEN_STORAGE3 | 0xFFD8005C | 0x00000000 -0xFFFFFFFF |
Read the value of a persistent global storage register:
$cat /sys/firmware/zynqmp/pggs0
Write the mask and value of a persistent global storage register:
$echo 0xFFFFFFFF 0x1234ABCD > /sys/firmware/zynqmp/pggs0