Hi Pali, On Tue, Nov 9, 2021 at 7:08 AM Pali Rohár <p...@kernel.org> wrote: > > On Monday 08 November 2021 22:34:51 Tony Dinh wrote: > > The above log was the build with the following configs: > > CONFIG_CMD_PCI=y > > CONFIG_PCI=y > > CONFIG_PCI_MVEBU=y > > CONFIG_PCI_PNP=y > > CONFIG_USB_XHCI_HCD=y > > CONFIG_USB_XHCI_PCI=y > > CONFIG_USB_XHCI_MVEBU=y > > CONFIG_PCI_INIT_R=y > > CONFIG_SYS_EARLY_PCI_INIT=y > > > > > > Any idea how to debug this? there must be some differences between the > > pci_init call early on, and much later with "pci enum". > > Hello! The only difference is when pci_init() function is called. So it > looks like that it needs to be called later (perhaps because PCIe needs > some other steps for initialization?). > > Could you try to disable CONFIG_SYS_EARLY_PCI_INIT option if it helps?
Please correct me if I'm wrong. It is a compound condition in board_r.c, so it would not be executed anyway? #if defined(CONFIG_PCI_INIT_R) && defined(CONFIG_SYS_EARLY_PCI_INIT) > And could you try to put pci_init() into board_early_init_r() and > disable both CONFIG_SYS_EARLY_PCI_INIT and CONFIG_PCI_INIT_R if it > helps? This did not help. I've added board_early_init_r to the board file, and called pci_init() there. In the debug output, I can see pci_init() executed early. But later, "usb start" still hangs at EHCI enumeration like before. scanning bus ehci@50000 for devices... Bound device usb_hub to ehci@50000 Strangely, on a hunch, I ran it a second time and then did "pci enum" and "usb start", I got a bit further. Now it scans the XHCI bus, and gets 3 USB devices, but then hangs. scanning bus ehci@50000 for devices... Bound device usb_hub to ehci@50000 Bound device usb_hub to usb_hub Bound device usb_mass_storage to usb_hub Bound device usb_mass_storage.lun0 to usb_mass_storage 3 USB Device(s) found scanning bus xhci_pci for devices... Bound device usb_hub to xhci_pci So it seems that after the board has finished initialization, calling pci_init() again from "pci enum" will result in more probing processing. Thanks, Tony