panda's tech note

Reset

Device State

  • 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

PEP Reset

  1. SM writes SOFT_RESET.PCIeReset[i].
  2. BSM waits until PCIE_IP.NotInReset becomes 1. Timeout = 150 us, otherwise cold reset is needed.
  3. BSM re-loads PCIe configuration space and other settings from NVM
  4. BSM sets PCIE_CTRL.LTSSM_ENABLE
  5. When PCIe link is up and power state is D0u, kernel initializes the PCIe configuration space and invokes SW driver
  6. SW driver re-configures the PEP DMA

Data Path Reset

  1. SW driver sets PCIE_DMA_CTRL.DataPathReset.
  2. Global DataPathReset interrupt is issued to SM/BSM.
  3. NotInReset bit in PCIE_IP register is cleared.
  4. SW driver polls the NotInReset bit until it is read as 1b.
  5. W driver re-configures the PEP DMA.