Hi Bin, On 2 August 2015 at 19:54, Bin Meng <bmeng...@gmail.com> wrote: > Hi Simon, > > On Mon, Aug 3, 2015 at 6:31 AM, Simon Glass <s...@chromium.org> wrote: >> Hi Bin, >> >> On 27 July 2015 at 01:33, Bin Meng <bmeng...@gmail.com> wrote: >>> With driver model, probing pci bus is all done on a lazy basis, >>> as needed. On x86, pci bus is the fundamental device that needs >>> to work before any other peripherals. In order to have a working >>> pci before any other pci devices can be initialized, we need >>> explicitly trigger the pci bus configuration. >>> >>> Signed-off-by: Bin Meng <bmeng...@gmail.com> >>> --- >>> >>> common/board_r.c | 16 ++++++++++++++++ >>> 1 file changed, 16 insertions(+) >>> >>> diff --git a/common/board_r.c b/common/board_r.c >>> index bf6c725..4263e47 100644 >>> --- a/common/board_r.c >>> +++ b/common/board_r.c >>> @@ -233,6 +233,22 @@ static int initr_pci(void) >>> { >>> #ifndef CONFIG_DM_PCI >>> pci_init(); >>> +#else >>> +#ifdef CONFIG_X86 >>> + /* >>> + * With driver model, probing pci bus is all done on a lazy basis, >>> + * as needed. On x86, pci bus is the fundamental device that needs >>> + * to work before any other peripherals. In order to have a working >>> + * pci before any other pci devices can be initialized, we need >>> + * explicitly trigger the pci bus configuration. >>> + */ >>> + struct udevice *dev; >>> + int ret; >>> + >>> + ret = uclass_first_device(UCLASS_PCI, &dev); >>> + if (ret) >>> + return ret; >> >> Won't this happen anyway when you first access a PCI device? >> > > Unfortunately no. The pci bus configuration will not be triggered when > calling pci config read/write. > > [snip]
We should be able to use the dm_pci_config..() functions and by just getting hold of the bus device it should probe the bus before doing any config. Then it would be auto-triggered. In general we should try to make use of automatic probing - it was supposed to be a key feature of driver model. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot