Any information on what PCIe controller is in use in the K1/M1?

I bought my Jupiter mainly to get a proper graphics card setup, as I was getting tired of my Visionfive 2 with an NVMe to PCIe riser. Sadly, PCI seems to not be working at all on my M1 Jupiter. Looking at the u-boot logs and dmesg, neither are seemingly able to get the PCI link up.
As I am somewhat used to debugging and patching the software I use, I thought of doing the same here. Unfortunately, it seems like none of the documentation need for that is available. I have found this, that looks most like what I’m looking for. It contains enough documentation for the USB interface (down to the registers), but the PCIe interface is not described in nearly that much detail.

Is there some place that has more information? Am I just not understanding PCIe well enough, and the information on there is enough to debug/implement a driver?

1 Like

My experiments led to a bit more success. I tried to load drivers for my AMD RX550 GPU and it recognized the card, loaded the drivers and firmware but then struggled with resizable BAR support of the PCIe driver.

1 Like

are you aware of Graphics address remapping table not working on the PCIe in kernel 6.1 and 6.6 ?

1 Like

Yes, I am and I’m eagerly waiting for a patched driver to activate my RX550. With that, the Jupiter will become a fun thing I think.
But thanks for the hint!

1 Like

What model of the Jupiter do you have exactly? And what image are you running? If you happen to have the same model as me and run the same image as me, i could have broken hardware.

1 Like

I have the M1 version with 16GB and of course the 1.0 since there isn’t a different version as far as I know.
I’m running the default Bianbu Image (now at 1.0.15) and a self build Archlinux image which uses the same kernel from the Bianbu image (same boot partition).

I have exactly the same board (M1 with 16GB RAM), so i should be getting the same results as you. I usually run my own Gentoo image on the Jupiter, but just to make sure I haven’t misconfigured something, I reinstalled v1.0.15 of their Bianbu image, so I should 100% get the same result as you do.
It still does not work:

Maybe I have broken hardware?

1 Like

I doubt that, to be honest. If I have no card inserted, I get exactly the same message and if I then insert my RX550 in that slot, I get:

[    1.082005] k1x-dwc-pcie ca400000.pcie: has no power on gpio.
[    1.085284] Freeing initrd memory: 6600K
[    1.087343] k1x-dwc-pcie ca400000.pcie: host bridge /soc/pcie@ca400000 ranges:
[    1.096229] k1x-dwc-pcie ca400000.pcie:       IO 0x009f002000..0x009f101fff -> 0x009f002000
[    1.104630] k1x-dwc-pcie ca400000.pcie:      MEM 0x0090000000..0x009effffff -> 0x0090000000
[    1.213115] unexpected IRQ,INT0
[    1.213150] k1x-dwc-pcie ca400000.pcie: iATU unroll: enabled
[    1.219126] k1x-dwc-pcie ca400000.pcie: iATU regions: 8 ob, 8 ib, align 4K, limit 4G
[    1.317061] k1x-dwc-pcie ca400000.pcie: PCIe Gen.2 x2 link up
[    1.320097] k1x-dwc-pcie ca400000.pcie: PCI host bridge to bus 0001:00

Do you have a card in the slot when you get that message?

1 Like

Had an RX 550 in there. I never actually saw that specific 550 working (bought it specifically for getting the Jupiter up and running), so I quickly tried the RX 580 I had (successfully) used on my Visionfive 2 a month ago, and got the same errors as above.

1 Like

Well, that is different from my experience so far but it still sounds like a very special defect to me. Perhaps other owners of the M1 report back here.

1 Like