AM2431: The Raspberry Pi CM5 (PCIe RC) cannot properly enumerate the AM2431 (TMDS243EVM, PCIe EP)

Part Number: AM2431
Other Parts Discussed in Thread: TMDS243EVM, , AM2434

Tool/software:

Hi, experts,

The Raspberry Pi CM5 (PCIe RC) cannot properly enumerate the AM2431 (TMDS243EVM, PCIe EP).

I have rebuilt the kernel with VFIO and IOMMU enabled on WSL2 and successfully booted the Raspberry Pi CM5 with kernel version 6.12.40-v8-16k+.

However, simply connecting the CM5 and TMDS243EVM does not result in enumeration.
(The log shows “PCIe: EP initialized and waiting for link”, but never “PCIe: link detected”.)

Currently, enumeration works only under the following sequence:

  1. Connect a NIC (which works properly as a PCIe network interface card) to the PCIe connector of the CM5 IO board via an M.2 to PCIe riser, then reboot the CM5 → enumeration succeeds.

  2. Disconnect the NIC, connect the TMDS243EVM PCIe EP, then reboot the CM5 → enumeration also succeeds.

(Only then do I see the “PCIe: link detected” message in the logs.)

So, the enumeration issue itself still needs to be resolved.

In addition, even when I run the following command on the CM5:

echo "17cd 0100" > /sys/bus/pci/drivers/vfio-pci/new_id

the following messages do not appear:

PCIe: power state entry
EP is in D3hot state
PCIe: signaling APPL halt
APPL: pcie not ready

Is this because it’s running on a Raspberry Pi, or is there an alternative approach?

(Ultimately, I want to transmit data(ex. hello world) from the EP to the RC.)

The current development environment is
TI CCS : 20.3.0
SDK : 11.01.00.17
Win11

PCIe RC Board : raspberry pi CM5, CM5io
PCIe EP Board : TMDS243EVM
(Resistors R661, R662, R667 & R668 removed)
(Resistors R665, R666, R679 & R680 (all 0 ohm) populated)
example : pcie_enumerate_ep