
Hi Nobuhiro,
On Tuesday 08 July 2008, Nobuhiro Iwamatsu wrote:
c) CONFIG_PCI_CONFIG_HOST_BRIDGE is defined and the env variable "pciconfighost" is defined too
If I understand you correctly, then you have some PCI devices at BDF == 0,0,0 that need to be configured (and not skipped). Correct? If this is correct, wouldn't it be enough for you to use "solution" c) from above?
Yes, Your indication is right. And there was the part which I did not understand. But, I think that there is still a problem only by these measures.
For example, BDF == 0,0,0 are not displayed when I validated CONFIG_PCI_SCAN_SHOW.
Right, this is a problem.
475 #ifdef CONFIG_PCI_SCAN_SHOW 476 /* Skip our host bridge */ 477 if ( dev != PCI_BDF(hose->first_busno,0,0) ) { 478 unsigned char int_line; 479 480 pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_LINE, 481 &int_line); 482 printf(" %02x %02x %04x %04x %04x %02x\n", 483 PCI_BUS(dev), PCI_DEV(dev), vendor, device, class, 484 int_line); 485 } 486 #endif
I think that it is a problem to handle only "BDF == 0,0,0". I think that I had better check it in Class ID. (Of cource, I understand that my implementation is mean.)
Yes, switching to this class-ID check would be probably "cleaner". The main problem I see with this is, that we could break backward compatibility. I really don't know if all boards currently using this "Host-Bridge-Skipping" implementation have the class-ID set to 0x0680 (Other bridge type).
So I suggest the following solution: I'll prepare a patch to move this "Skip-device-check" into a separate weak function with the current behavior. You (and others) can then define a custom "Skip-device-check" function in your platform code that overrides this default function.
I'll send this patch to the list in a short while. Please try it out and let me know if this works for you.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================