Hi, all. Sorry for the delay.
On Fri, 18 Apr 2008 16:57:15 +0200 Stefan Roese <[EMAIL PROTECTED]> wrote: > > The patch changes the behavior of the code _unless_ > > CONFIG_PCI_SKIP_HOST_BRIDGE is defined. Defining that switch in the > > Korat configuration fixes the problem. The MPC8323ERDB configuration > > has also been patched to add the switch, so maybe this is is the cause > > of your problem as well. > > > > I was going to submit the patch for Korat, but then decided I'd first > > like to ask Nobuhiro and the group whether it might not be better to > > change the occurrences of > > > > #if defined(CONFIG_PCI_SKIP_HOST_BRIDGE) > > > > in "drivers/pci/pci.c" to > > > > #if !defined(CONFIG_PCI_NO_SKIP_HOST_BRIDGE) > > > > That would allow those boards that need to patch to specify it > > explicity, while leaving the default functionality unchanged. > > > > Comments? > > Yes, I totally agree. Patches should *not* change the default behavior. We > should change it as you suggested. Sorry, I must have missed this. > > Nobuhiro, could you please send a new patch to fix this problem? Thank you for your check. It has troubled you with my patch. I rewirte new patch . Could you please check this patch and confirming the work? Best regards, Nobuhiro -- Nobuhiro Iwamatsu --- Remove CONFIG_PCI_SKIP_HOST_BRIDGE from drivers/pci/pci.c. Add check PCI class of host bridge(CPU to PCI bridge). Signed-off-by: Nobuhiro Iwamatsu <[EMAIL PROTECTED]> --- drivers/pci/pci.c | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 7944b66..129a6c9 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -425,14 +425,15 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus) dev < PCI_BDF(bus,PCI_MAX_PCI_DEVICES-1,PCI_MAX_PCI_FUNCTIONS-1); dev += PCI_BDF(0,0,1)) { - - /* Bus 0 is not necessarily PCI bridge. */ -#if defined(CONFIG_PCI_SKIP_HOST_BRIDGE) + /* Read class register */ + pci_hose_read_config_word(hose, dev, PCI_CLASS_DEVICE, &class); /* Skip our host bridge */ - if ( dev == PCI_BDF(hose->first_busno,0,0) ) { -#if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE) /* don't skip host bridge */ + if ( (dev == PCI_BDF(hose->first_busno,0,0)) && + (class == 0x0600)) { /* CPU to PCI bridge */ +#if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE) /* don't skip host bridge */ /* - * Only skip hostbridge configuration if "pciconfighost" is not set + * Only skip hostbridge configuration if + * "pciconfighost" is not set */ if (getenv("pciconfighost") == NULL) { continue; /* Skip our host bridge */ @@ -441,8 +442,6 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus) continue; /* Skip our host bridge */ #endif /* CONFIG_PCI_CONFIG_HOST_BRIDGE */ } -#endif /* CONFIG_PCI_SKIP_HOST_BRIDGE */ - if (PCI_FUNC(dev) && !found_multi) continue; @@ -477,11 +476,8 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus) hose->fixup_irq(hose, dev); #ifdef CONFIG_PCI_SCAN_SHOW -#if defined(CONFIG_PCI_SKIP_HOST_BRIDGE) /* Skip our host bridge */ - if ( dev != PCI_BDF(hose->first_busno,0,0) ) -#endif - { + if( class != 0x0600 ) { /* CPU to PCI bridge */ unsigned char int_line; pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_LINE, -- 1.5.5 ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users