User Hooks

Zynq UltraScale plus MPSoC Power Management

Release Date
2023-04-24
  • pmPosDdrReqs_g[] - array of PmPosRequirement data structures. Defines slaves and their capabilities required for saving DDR context. For ZCU102 board there is Qspi slave device in this list.
  • PmHookPosSaveDdrContext() - Used for saving DDR context (srdata section) in available non-volatile memory device. The ZCU102 board Power Off Suspend implementation saves the DDR context in the QSPI Flash memory, which is implemented in this function. Support for accessing the QSPI flash is implemented in the pm_qspi.c/h files.
    • PmQspiHWInit() - Initialize ZU+ QSPI hardware resources for accessing memory device (MIO pins, clock, reset).
    • PmQspiInit() - Initialize PFW QSPI driver used for accessing memory device.
    • PmQspiWrite() - Write required data to QSPI Flash memory
  • PmHookFinalizePowerOffSuspend() - Called from LPD power down handler as last step before powering down LPD, used for handshake between PMU and the MSP430. On ZCU102 drive MIO37 pin high to request entering Power Off Suspend.
  • PmHookPowerDownLpd() - Called from LPD power down handler in order to request power down of LPD from external power controller. On ZCU102 drive MIO34 low in order to request LPD power down from MSP430.
  • PmHookInitPowerOffSuspend() - Used as part of PM module initialization in order to execute board specific steps required for enabling Power Off Suspend. On ZCU102 drive MIO34 high at startup in order to be able to send LPD power down request.
  • PmHookGetBootType() - Used for detecting boot type (Power Off Suspend resume vs. Cold Start) and signaling that information to FSBL. On ZCU102 read state of MIO26 in order to detect boot type.
  • PmHookRestoreDdrContext() - Used for restoring DDR context (srdata section) from available non-volatile memory device. In case of ZCU102 board restore data from QSPI Flash memory using PFW support for QSPI:
    • PmQspiHWInit() - Initialize ZU+ QSPI hardware resources for accessing memory device (MIO pins, clock, reset).
    • PmQspiInit() - Initialize PFW QSPI driver used for accessing memory device.
    • PmQspiRead() - Read data from QSPI Flash memory
  • PmHookPowerOffSuspendDdrReady() - Used during Power Off Suspend resume sequence as part of DDR driver for signaling that PMU is ready to take DDR out of self refresh.