Due to frustration, claude is responsible for this document.
#
I bought a “henryreal” branded PEX88048 card from Amazon (~$240). It enumerates as a Broadcom PEX880xx [1000:c012], the switch topology appears in lspci -tv, fans spin on both R9700s (power through C-Payne device adapters is fine) — but zero GPUs appear on any downstream port.
The root cause is in the upstream port’s capability register:
=== 01:00.0 (upstream port) ===
LnkCap: Port #0, Speed 2.5GT/s, Width x4
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5GT/s
This is a Gen 4 switch chip advertising Gen 1 x4 as its maximum capability. That’s not a negotiation failure — it’s the EEPROM configuration. The chip can do Gen4 x16, but the board’s EEPROM tells it not to. All downstream ports also show 2.5GT/s capability only.
For comparison, a working card should show Speed 16GT/s, Width x16 in LnkCap.
#
=== 01:00.0 ===
LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L1 <32us
LnkSta: Speed 2.5GT/s, Width x4
=== 02:00.0 ===
LnkCap: Port #224, Speed 2.5GT/s, Width x16, ASPM L0s L1
LnkSta: Speed 2.5GT/s, Width x16
=== 02:04.0 ===
LnkCap: Port #225, Speed 2.5GT/s, Width x16, ASPM L0s L1
LnkSta: Speed 2.5GT/s, Width x16
=== 02:0c.0 ===
LnkCap: Port #227, Speed 2.5GT/s, Width x16, ASPM L0s L1
LnkSta: Speed 2.5GT/s, Width x16
=== 02:1c.0 ===
LnkCap: Port #255, Speed 2.5GT/s, Width x16, ASPM L0s L1
LnkSta: Speed 2.5GT/s, Width x16
#
Card is physically x16 edge connector, fully seated in CPU-direct Slot 1 (X870E Tomahawk, Gen5 capable) #
Reseated the card, tried BIOS slot speed at Gen4 and Auto — no change #
No DIP switches on the board to change upstream config #
GPUs have power (fans spin from C-Payne 6-pin slot power + 12VHPWR from PSU) #
pci=realloc in GRUB, Above 4G + ReBAR enabled in BIOS #
Vendor website unreachable, no firmware download path
#
Not all PEX88048 carrier boards ship with correct EEPROM programming. The Broadcom chip is fine — the board vendor’s firmware is wrong. There’s no user-serviceable fix without Broadcom’s proprietary SDK tools.
If you’re buying a PEX88048/88096 for GPU use, run lspci -vv on the upstream port before building anything around it. LnkCap should show 16GT/s (Gen4) and your expected width. If it shows 2.5GT/s, return it.
#
ASRock X870E Tomahawk MAX, Ryzen 9 9900X, 96GB DDR5 #
2× Radeon AI PRO R9700 (gfx1201) on C-Payne SlimSAS Gen4 device adapters #
Ubuntu 24.04.4, kernel 6.17 HWE, ROCm 7.2.3 #
Goal: dual-card DDP/FSDP training via RCCL
Hi Waylon, I saw your work with the PEX88048 EEPROM configuration. Have you done any work with PEX89000/PEX89144 Gen5 switches? I’m looking at repurposing Dell XE9680 PEX89144 switch boards and would appreciate any advice or issues you think I should watch for.