On Mon, Jan 16, 2023 at 04:22:09PM +0000, Limonciello, Mario wrote: > > From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > > Sent: Monday, January 16, 2023 06:39 > > To: Jan Dąbroś <jsd@xxxxxxxxxxxx> > > On Mon, Jan 16, 2023 at 11:19:00AM +0100, Jan Dąbroś wrote: > > > > Make init_amd_nbs() arch_initcall_sync() so that it executes after PCI > > init. > > > > > > I described earlier in this thread why such option is not working - > > > let me quote myself: > > > > > > It's not enough for running init_amd_nbs() to have only > > > pci_arch_init() done. We need the pci bus to be created and registered > > > with all devices found on the bus. We are traversing through them and > > > trying to find northbridge VID/DID. Due to the above, we need to run > > > init_amd_nbs() only after acpi_scan_init() that is invoked from > > > acpi_init() which is registered as subsys_initcall. That's why the > > > trick with switching init_amd_nbs() to arch_initcall_sync will not > > > work. > > > > > > We have a kind of chicken-and-egg problem here. Or is there something I > > missed? > > > > > > I wonder if there is upstreamable option to control order of the > > > drivers' init by forcing link order? > > > > But what exactly do you need from North Bridge? Is it only its existence or > > do you need to have fully instantiated PCI device (if so, why?)? > > There is a need to be able to write and read PCI config space. So, it's available even on early stages, are there some specifics why it can't be done using the respective APIs? -- With Best Regards, Andy Shevchenko