Hi Suneel, On 27 April 2017 at 05:29, Suneel Garapati <suneelgli...@gmail.com> wrote: > Hi Tom/Simon, > > Request to help on below query. > > Regards, > Suneel > > On Tue, Apr 25, 2017 at 16:25 Suneel Garapati <suneelgli...@gmail.com> > wrote: >> >> Hi Simon, >> >> Request your inputs on below query - >> >> Boards I work on have most of the devices on PCI bus, driver model >> support enabled, would like to use CONFIG_SYS_EARLY_PCI_INIT to call >> pci_init but the below snippet would hinder. >> >> #ifdef CONFIG_PCI >> static int initr_pci(void) >> { >> -#ifndef CONFIG_DM_PCI >> pci_init(); >> -#endif >> .... >> >> Is this change valid or should create another config item for driver >> model based early pci init?
Here are my ideas: 1. Create a new DM_FLAG_OF_AUTO_INIT flag to dm/device.h which can be used in a uclass, i.e.: UCLASS_DRIVER(pci_generic) = { .id = UCLASS_PCI_GENERIC, .name = "pci_generic", .flags = DM_FLAG_OF_AUTO_INIT, }; 2. Update dm_init_and_scan() to add a new call to dm_auto_init() at the end of it 3. Implement dm_auto_init() to scan all the uclasses (see uclass_find() for an example) and for any that have the flag set, probe all their devices That way, PCI will be auto-probed on machines which have it. Later we could come up with a way to allow boards to turn this on/off, but for now, maybe just always doing it is good enough. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot