Skip to contentSkip to conversation

PCI_BUSES_TO_SCAN off by 1?

Linux-ia64 Van Maren, Kevin 5 participants 6 messages Aug 30, 2002 – Oct 22, 2002

lore
Share & tools
lore
#0 lore raw

Hi all,

Is there any reason we don't scan the last PCI bus on IA64? arch/ia64/kernel/pci.c has PCI_BUSES_TO_SCAN set to 255 instead of 256, which prevents the kernel from scanning bus 255. This causes is some problems since some of our machines (ie, the Itanium2 "tiger") place chipset registers in PCI config space on the last PCI bus. I've run with it set to 256 on the Lion and some other machines with no apparent problems.

Thanks,
Kevin

#1 lore raw
Quoted 6 lines

Is there any reason we don't scan the last PCI bus on IA64? arch/ia64/kernel/pci.c has PCI_BUSES_TO_SCAN set to 255 instead of 256, which prevents the kernel from scanning bus 255. This causes is some problems since some of our machines (ie, the Itanium2 "tiger") place chipset registers in PCI config space on the last PCI bus.

I agree, it sounds like an off-by-one error.

Along this line, I had been hoping that if we find any PCI root bridges via ACPI, we could skip the blind scanning of buses 0-255. It sounds like skipping the blind scan might break tiger, though. I assume it has root bridges in ACPI like BigSur does, but evidently these chipset registers on bus 255 aren't found that way? Having to do both ACPI and blind scans feels wrong somehow, but I can't point to a spec to back that up.

Bjorn

#2 lore raw
In reply to Van Maren, Kevin
Quoted 11 lines

Hi all,

Is there any reason we don't scan the last PCI bus on IA64? arch/ia64/kernel/pci.c has PCI_BUSES_TO_SCAN set to 255 instead of 256, which prevents the kernel from scanning bus 255. This causes is some problems since some of our machines (ie, the Itanium2 "tiger") place chipset registers in PCI config space on the last PCI bus. I've run with it set to 256 on the Lion and some other machines with no apparent problems.

Quoted 2 lines

Thanks,
Kevin

I opened PV 866403 for this....

Quoted 7 lines

_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64

Signature · 3 lines
Thanks

Jack Steiner    (651-683-5302)   (vnet 233-5302)      [email protected]
#3 lore raw
In reply to Van Maren, Kevin
Quoted 7 lines · On Fri, 30 Aug 2002 15:11:20 -0600 Bjorn Helgaas <[email protected]> wrote:
Quoted 6 lines

Is there any reason we don't scan the last PCI bus on IA64? arch/ia64/kernel/pci.c has PCI_BUSES_TO_SCAN set to 255 instead of 256, which prevents the kernel from scanning bus 255. This causes is some problems since some of our machines (ie, the Itanium2 "tiger") place chipset registers in PCI config space on the last PCI bus.

Quoted 5 lines

I agree, it sounds like an off-by-one error.

Along this line, I had been hoping that if we find any PCI root bridges via ACPI, we could skip the blind scanning of buses 0-255. It sounds like skipping the blind scan might break tiger, though.

AFAIK, tiger defines PCI bus 255 as a host-bus bridge in ACPI.

Thanks,

Signature · 1 line
KOCHI, Takayoshi <[email protected]/[email protected]>
#4 lore raw
In reply to Van Maren, Kevin
Quoted 2 lines · Bjorn Helgaas

Along this line, I had been hoping that if we find any PCI root bridges via ACPI, we could skip the blind scanning of buses 0-255.

To complete this thread, it looks like we can't do this. My i2000 reports PCI root bridges for buses 0, 1, 2, and 3 via ACPI. The 460GX chipset, including the CSRs for the AGP bridge, appears in config space on PCI bus 4. ACPI doesn't tell us about bus 4, so we have to do the blind scan to find that stuff.

Bjorn

#5 lore raw
In reply to Van Maren, Kevin
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Bjorn Helgaas

Bjorn> To complete this thread, it looks like we can't do this. My Bjorn> i2000 reports PCI root bridges for buses 0, 1, 2, and 3 via Bjorn> ACPI. The 460GX chipset, including the CSRs for the AGP Bjorn> bridge, appears in config space on PCI bus 4. ACPI doesn't Bjorn> tell us about bus 4, so we have to do the blind scan to find Bjorn> that stuff.

We no longer do the blind scan in 2.5.39 and it seems to work fine on the big sur I tested it on:

	$ uname -v
	#33 SMP Sat Sep 28 10:58:07 PDT 2002
	$ dmesg|fgrep 'Probing PCI'
	PCI: Probing PCI hardware on bus (00)
	PCI: Probing PCI hardware on bus (01)
	PCI: Probing PCI hardware on bus (02)
	PCI: Probing PCI hardware on bus (03)
	PCI: Probing PCI hardware on bus (04)

Could it be that your i2000 has old firmware? My big sur reports the following firmware version (via Stephane's smbiosview utility):

	version      : W460GXBS2.86E.0117C.P09.200108091154

--david