I am unable to get PCI working (in RC mode) on the DM8148 EVM. The kernel that came with PSP04.04.00.01 did not even have CONFIG_PCI enabled. I have enabled it, and have followed the "Supported Use Case" section (19.3) of the TRM (sprugz7b). The PCIE_PLLCFG regs are set, the PCIE_CFG.PCIE_DEVTYPE is 2. I enabled the TRSSM_EN bit in CMD_STATUS. I put a prink in pcie-ti81xx.c in the check_device() function that prints the value of PCIE DEBUG0 register. As it enumerates PCI, this function is called on each device. Here's the first few printouts:
ti81xx_pcie: Reading config[0] for device 0000:00:00..check_device(): DEBUG0 is b503, LTSSM_STATE_MASK is 1f
failed. No link/device.
ti81xx_pcie: Reading config[0] for device 0000:01:00..check_device(): DEBUG0 is b503, LTSSM_STATE_MASK is 1f
failed. No link/device.
ti81xx_pcie: Reading config[0] for device 0000:02:00..check_device(): DEBUG0 is bc43, LTSSM_STATE_MASK is 1f
failed. No link/device.
ti81xx_pcie: Reading config[0] for device 0000:03:00..check_device(): DEBUG0 is bc43, LTSSM_STATE_MASK is 1f
failed. No link/device.
ti81xx_pcie: Reading config[0] for device 0000:04:00..check_device(): DEBUG0 is bc43, LTSSM_STATE_MASK is 1f
failed. No link/device.
So the DEBUG0.LTSMM_STATE is 3, in all cases. That corresponds to state POLL_COMPLIANCE state rather than the expected L0 state (0x11).
How do i debug this?
Shouldn't the PCIESS show up in the "lspci -v" output as bus0?
Does there need to be an EP available for the root to show up in lspci?
Please help!