James Chapman wrote: > Mark A. Greer wrote: > >> > + /* Setup P2P for PCI#0 */ >> > + val32 = mv64x60_read(&bh, MV64x60_PCI0_P2P_CONFIG); >> > + val32 &= ~(0x00ffffff); >> > + val32 |= ((bh.hose_a->first_busno & 0xff) << 16); >> etc. >> >> Do you really use the P2P bridge? Unless I missed something, I think >> it remains disabled. You shouldn't need it unless you have PCI >> devices on one hose directly accessing PCI devices on the other >> hose. The P2P stuff seems complicated & unnecessary. > > > Thinking about this more, what is really being configured here is the > primary bus number before the scan is performed. If the bus number > doesn't match the hose's primary bus number, the mv64x60 will issue > Type 2 PCI config cycles instead of Type 1 and the scan will fail. > > This board has an on-board PCI-X bridge and potentially other PCI > bridges on PMC cards. I found that I had to init the P2P_CONFIG > primary bus value before scan in order for the PCI scan of bus 2 > to work (hose_a has PCI busses 0 and 1). > > I think the writes to the P2P config registers are necessary.
mv64x60_set_bus() is supposed to do that. Try doing your bus numbering setup/bus scanning like what's in ev64260.c. If there is still a deficiency, then we should fix up that routine. Mark