On Fri, Oct 13, 2023 at 11:12:49AM +0300, Alexander Shiyan wrote: > Hello. > > I'm trying to run PCI-e 2.0 on an RK3568 processor. The driver loads > OK and does not detect anyone on the bus except itself. > In the kernel, everything works as it should and connected devices are > visible on the bus (in my case, I use Intel AX200 and MediaTek MT7921e > Wi-Fi modules). > Enabling PCI debugging produces these messages: > pbar0 set bad mask > pbar1 set bad mask > Has anyone run PCI on this CPU? I've added the Rockchip PCIe driver for the RK3588 and tested it working there. I never used it on the RK3568 due to the lack of hardware. I don't have the Rock5b board handy at the moment, but maybe I can have a look the next days what the register reads there. > > I'm not too familiar with the PCI subsystem, but after briefly looking > at the code, > I saw in the setup_device() function the line: > pci_write_config_dword(dev, pci_base_address_0, 0xfffffffe); > On Linux and u-boot this value is ~0. > The question is, are we doing the right thing here? I don't know. Where is the corresponding place in Linux? > > And the question is not related to the PCI: > rk3568_lowlevel_init() does not call arm_cpu_lowlevel_init(). Is this OK? It should be called once on each board and rk3568_lowlevel_init() seems like a good place for it. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |