panda's tech note
- D3c: No power.
- D3d: Power is applied but the host interface is disabled.
- D3h: Hot Reset asserted (via in-band message).
- D0r: Out of reset but initial setup not completed.
- D0u: Out of reset and firmware load complete
- D0a: Fully active state
- SM writes SOFT_RESET.PCIeReset[i].
- BSM waits until PCIE_IP.NotInReset becomes 1.
Timeout = 150 us, otherwise cold reset is needed.
- BSM re-loads PCIe configuration space and other settings from NVM
- BSM sets PCIE_CTRL.LTSSM_ENABLE
- When PCIe link is up and power state is D0u, kernel initializes the PCIe configuration space and invokes SW driver
- SW driver re-configures the PEP DMA
- SW driver sets PCIE_DMA_CTRL.DataPathReset.
- Global DataPathReset interrupt is issued to SM/BSM.
- NotInReset bit in PCIE_IP register is cleared.
- SW driver polls the NotInReset bit until it is read as 1b.
- W driver re-configures the PEP DMA.