Eric,
static void ht_collapse_previous_enumeration(unsigned bus)
{
device_t dev;
/* Spin through the devices and collapse any previous
* hypertransport enumeration.
*/
for(dev = PCI_DEV(bus, 0, 0); dev <= PCI_DEV(bus, 0x1f, 0x7); dev +=
PCI_DEV(0, 1, 0)) {
I think PCI_DEV(bus, 0, 0) should be changed to PCI_DEV(bus, 1, 0)
And before that it should check PCI_DEV(bus,0,0), if the device is there,
collapse should get back right away and don't do any collapse.
In the hypertransport.c collapse don't need to check PCI_DEV(bus, 0, 0),
because it must begin from unitid 1.
YH
-----Original Message-----
From: Stefan Reinauer [mailto:stepan@openbios.org]
Sent: Wednesday, December 15, 2004 8:36 AM
To: YhLu
Cc: 'Eric W. Biederman'; linuxbios(a)clustermatic.org
Subject: Re: collapsing devices.
* YhLu <YhLu(a)tyan.com> [041214 03:14]:
> Stefan,
>
> I add dump_pci_decvies_on_bus in debug.c
>
> Please add calling to dump_pci_devices_on_bus(busn) before
> ht_collapse_previous_enumeration(busn). In ht_setup_chains.
>
> Also in auto.c you need to put inconerent_ht.c after debug.c.
See the other mail I sent you. When just calling a loop for scanning
bus 0-16 before ht_setup_chains, it finds the devices on bus0, none on
1-5 and then hangs while scanning bus5
Stefan