PCI64 bus vanished in 2.4.23-pre6
Hi all...
With 2.4.23-pre6, my e1000 cards did not work. I was thinking it was a driver problem, but the I realized that they are not even listed in lspci.
lspci (-n) in pre5:
00:00.0 Class 0600: 1166:0009 (rev 06)
00:00.1 Class 0600: 1166:0009 (rev 06)
00:04.0 Class 0300: 1039:6326 (rev 0b)
00:06.0 Class 0200: 8086:1229 (rev 08)
00:0f.0 Class 0601: 1166:0200 (rev 51)
00:0f.1 Class 0101: 1166:0211
00:0f.2 Class 0c03: 1166:0220 (rev 04)
01:02.0 Class 0200: 8086:1004 (rev 02)
00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:04.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 5598/ 00:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 51)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04) 01:02.0 Ethernet controller: Intel Corp. 82543GC Gigabit Ethernet Controller (Co
lspci in pre6:
00:00.0 Class 0600: 1166:0009 (rev 06)
00:00.1 Class 0600: 1166:0009 (rev 06)
00:04.0 Class 0300: 1039:6326 (rev 0b)
00:06.0 Class 0200: 8086:1229 (rev 08)
00:0f.0 Class 0601: 1166:0200 (rev 51)
00:0f.1 Class 0101: 1166:0211
00:0f.2 Class 0c03: 1166:0220 (rev 04)
00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:04.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 5598/ 00:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 51)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04)
Do not know if it is a problem of the driver (i suppose it is not, the driver has nothing to do with lspci...), a problem of the bus number, a problem of the PCI bus being 64 bit, or a problem with the OSB4 chipset.
Quoted 1 line
From the changelog, my candidates are:
<moilanen:austin.ibm.com>:
o Workaround PPC64 PCI scan issue
Len Brown:
o [ACPI] ...
Any ideas ?
TIA
Signature · 4 lines
J.A. Magallon <jamagallon()able!es> \ Software is like sex: werewolf!able!es \ It's better when it's free Mandrake Linux release 9.2 (Cooker) for i586 Linux 2.4.23-pre6-jam1 (gcc 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk))
Quoted 43 lines · J.A. Magallon
Hi all...
With 2.4.23-pre6, my e1000 cards did not work. I was thinking it was a driver problem, but the I realized that they are not even listed in lspci.
lspci (-n) in pre5:
00:00.0 Class 0600: 1166:0009 (rev 06)
00:00.1 Class 0600: 1166:0009 (rev 06)
00:04.0 Class 0300: 1039:6326 (rev 0b)
00:06.0 Class 0200: 8086:1229 (rev 08)
00:0f.0 Class 0601: 1166:0200 (rev 51)
00:0f.1 Class 0101: 1166:0211
00:0f.2 Class 0c03: 1166:0220 (rev 04)
01:02.0 Class 0200: 8086:1004 (rev 02)00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:04.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 5598/ 00:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 51)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04) 01:02.0 Ethernet controller: Intel Corp. 82543GC Gigabit Ethernet Controller (Colspci in pre6:
00:00.0 Class 0600: 1166:0009 (rev 06)
00:00.1 Class 0600: 1166:0009 (rev 06)
00:04.0 Class 0300: 1039:6326 (rev 0b)
00:06.0 Class 0200: 8086:1229 (rev 08)
00:0f.0 Class 0601: 1166:0200 (rev 51)
00:0f.1 Class 0101: 1166:0211
00:0f.2 Class 0c03: 1166:0220 (rev 04)00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 06) 00:04.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 5598/ 00:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 51)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04)
Quoted 4 lines
Do not know if it is a problem of the driver (i suppose it is not, the driver has nothing to do with lspci...), a problem of the bus number, a problem of the PCI bus being 64 bit, or a problem with the OSB4 chipset.
Er, it looks like chipset specific. The front end has the very same card (different mobo) on bus 3:
annwn:~> lspci
00:00.0 Host bridge: Intel Corp. 82860 860 (Wombat) Chipset Host Bridge (MCH) (rev 04) 00:01.0 PCI bridge: Intel Corp. 82850 850 (Tehama) Chipset AGP Bridge (rev 04) 00:02.0 PCI bridge: Intel Corp. 82860 860 (Wombat) Chipset AGP Bridge (rev 04) 00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 04)
00:1f.0 ISA bridge: Intel Corp. 82801BA ISA Bridge (LPC) (rev 04)
00:1f.1 IDE interface: Intel Corp. 82801BA IDE U100 (rev 04)
00:1f.2 USB Controller: Intel Corp. 82801BA/BAM USB (Hub #1) (rev 04)
00:1f.3 SMBus: Intel Corp. 82801BA/BAM SMBus (rev 04)
00:1f.4 USB Controller: Intel Corp. 82801BA/BAM USB (Hub #2) (rev 04)
00:1f.5 Multimedia audio controller: Intel Corp. 82801BA/BAM AC'97 Audio (rev 04) 01:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev a1) 02:1f.0 PCI bridge: Intel Corp. 82806AA PCI64 Hub PCI Bridge (rev 03)
03:00.0 PIC: Intel Corp. 82806AA PCI64 Hub Advanced Programmable Interrupt Controller (rev 01) 03:01.0 Ethernet controller: Intel Corp. 82543GC Gigabit Ethernet Controller (Copper) (rev 02) 03:02.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
04:03.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 74) 04:04.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08)
???
Signature · 4 lines
J.A. Magallon <jamagallon()able!es> \ Software is like sex: werewolf!able!es \ It's better when it's free Mandrake Linux release 9.2 (Cooker) for i586 Linux 2.4.23-pre6-jam1 (gcc 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk))
Quoted 7 lines · J.A. Magallon
Hi all...
With 2.4.23-pre6, my e1000 cards did not work. I was thinking it was a driver problem, but the I realized that they are not even listed in lspci.
<moilanen:austin.ibm.com>:
o Workaround PPC64 PCI scan issue
This has a high chance of being the problem.
Attached patch for you to revert (-R) and retry is attached, please. :)
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1136 -> 1.1136.2.1
# include/asm-alpha/pci.h 1.8 -> 1.9
# include/asm-mips64/pci.h 1.11 -> 1.12
# include/asm-sparc64/pci.h 1.6 -> 1.7
# include/asm-ppc64/pci.h 1.3 -> 1.4
# drivers/pci/pci.c 1.45 -> 1.46
# include/asm-arm/pci.h 1.10 -> 1.11
# include/asm-i386/pci.h 1.16 -> 1.17
# include/asm-m68k/pci.h 1.3 -> 1.4
# include/asm-sh/pci.h 1.10 -> 1.11
# include/asm-mips/pci.h 1.12 -> 1.13
# include/asm-parisc/pci.h 1.7 -> 1.8
# include/asm-ppc/pci.h 1.14 -> 1.15
# include/asm-sparc/pci.h 1.8 -> 1.9
# include/asm-ia64/pci.h 1.13 -> 1.14
# include/asm-x86_64/pci.h 1.5 -> 1.6
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/09/29 [email protected] 1.1137
# Merge intel.com:/home/lenb/bk/linux-2.4.23
# into intel.com:/home/lenb/bk/linux-acpi-test-2.4.23 # -------------------------------------------- # 03/09/29 [email protected] 1.1136.1.1 # Merge intel.com:/home/lenb/bk/linux-2.4.23 # into intel.com:/home/lenb/bk/linux-acpi-release-2.4.23 # -------------------------------------------- # 03/09/29 [email protected] 1.1136.2.1 # [PATCH] Workaround PPC64 PCI scan issue # # This patch is a port of some work that Anton Blanchard did for 2.6. # # There are some arch, like PPC64, that need to be able to scan all the # PCI functions. The problem comes in on a logically partitioned system # where function 0 on a PCI-PCI bridge is assigned to one partition and say # function 2 is assiged to another partition. On the second partition, it # would appear that function 0 does not exist, but function 2 does. If all # the functions are not scanned, everything under function 2 would not be # detected. # # # Thanks, # Jake # -------------------------------------------- # diff -Nru a/drivers/pci/pci.c b/drivers/pci/pci.c --- a/drivers/pci/pci.c Fri Oct 10 15:27:59 2003 +++ b/drivers/pci/pci.c Fri Oct 10 15:27:59 2003 @@ -1475,17 +1475,22 @@ u8 hdr_type;
for (func = 0; func < 8; func++, temp->devfn++) {
- if (func && !is_multi) /* not a multi-function device */
- continue;
if (pci_read_config_byte(temp, PCI_HEADER_TYPE, &hdr_type))
continue;
temp->hdr_type = hdr_type & 0x7f;
dev = pci_scan_device(temp);
- if (!dev)
- continue;
+ if (!pcibios_scan_all_fns() && func == 0) {
+ if (!dev)
+ break;
+ } else {
+ if (!dev)
+ continue;
+ is_multi = 1;
+ }
+
pci_name_device(dev);
- if (!func) {
+ if (!first_dev) {
is_multi = hdr_type & 0x80; first_dev = dev;
}
@@ -1499,6 +1504,14 @@
/* Fix up broken headers */ pci_fixup_device(PCI_FIXUP_HEADER, dev);
+
+ /*
+ * If this is a single function device
+ * don't scan past the first function.
+ */
+ if (!is_multi)
+ break;
+
}
return first_dev;
}
include/asm-alpha/pci.h +1 -0
@@ -50,6 +50,7 @@bus numbers. */ #define pcibios_assign_all_busses () 1 +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO alpha_mv.min_io_address#define PCIBIOS_MIN_MEM alpha_mv.min_mem_address
include/asm-arm/pci.h +2 -0
@@ -53,6 +53,8 @@/* We don't do dynamic PCI IRQ allocation */ } +#define pcibios_scan_all_fns () 0 +struct pci_dev ;/* Allocate and map kernel buffer using consistent mode DMA for a device.
include/asm-i386/pci.h +1 -0
@@ -14,6 +14,7 @@#else #define pcibios_assign_all_busses () 0#endif +#define pcibios_scan_all_fns () 0extern unsigned long pci_mem_start;#define PCIBIOS_MIN_IO 0x1000
include/asm-ia64/pci.h +1 -0
@@ -15,6 +15,7 @@* loader. */ #define pcibios_assign_all_busses () 0 +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000
include/asm-m68k/pci.h +1 -0
@@ -34,6 +34,7 @@ };#define pcibios_assign_all_busses () 0 +#define pcibios_scan_all_fns () 0extern inline void pcibios_set_master (struct pci_dev *dev) {
include/asm-mips/pci.h +1 -0
@@ -19,6 +19,7 @@#else #define pcibios_assign_all_busses () 0#endif +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000
include/asm-mips64/pci.h +1 -0
@@ -19,6 +19,7 @@#else #define pcibios_assign_all_busses () 0#endif +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000
include/asm-parisc/pci.h +1 -0
@@ -259,6 +259,7 @@** to zero for legacy platforms and one for PAT platforms. */ #define pcibios_assign_all_busses () (pdc_type == PDC_TYPE_PAT) +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0x10#define PCIBIOS_MIN_MEM 0x1000/* NBPG - but pci/setup-res.c dies */
include/asm-ppc/pci.h +1 -0
@@ -24,6 +24,7 @@extern int pci_assign_all_busses;#define pcibios_assign_all_busses () (pci_assign_all_busses) +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000
include/asm-ppc64/pci.h +6 -0
@@ -25,6 +25,12 @@#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000 +/* +* ppc64 can have multifunction devices that do not respond to function 0. +* In this case we must scan all functions. +*/ +#define pcibios_scan_all_fns () 1 +static inline void pcibios_set_master (struct pci_dev *dev) {/* No special bus mastering setup handling */
include/asm-sh/pci.h +1 -0
@@ -10,6 +10,7 @@or architectures with incomplete PCI setup by the loader */ #define pcibios_assign_all_busses () 1 +#define pcibios_scan_all_fns () 0#if defined(CONFIG_CPU_SUBTYPE_ST40 )/* These are currently the correct values for the ST40 based chips.
include/asm-sparc/pci.h +1 -0
@@ -8,6 +8,7 @@* or architectures with incomplete PCI setup by the loader. */ #define pcibios_assign_all_busses () 0 +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0UL#define PCIBIOS_MIN_MEM 0UL
include/asm-sparc64/pci.h +1 -0
@@ -11,6 +11,7 @@* or architectures with incomplete PCI setup by the loader. */ #define pcibios_assign_all_busses () 0 +#define pcibios_scan_all_fns () 0#define PCIBIOS_MIN_IO 0UL#define PCIBIOS_MIN_MEM 0UL
include/asm-x86_64/pci.h +1 -0
@@ -17,6 +17,7 @@#else #define pcibios_assign_all_busses () 0#endif +#define pcibios_scan_all_fns () 0extern unsigned long pci_mem_start;#define PCIBIOS_MIN_IO 0x1000
Quoted 9 lines · Marcelo Tosatti
Quoted 5 lines · J.A. Magallon
Hi all...
With 2.4.23-pre6, my e1000 cards did not work. I was thinking it was a driver problem, but the I realized that they are not even listed in lspci.
Quoted 7 lines
Quoted 2 lines
<moilanen:austin.ibm.com>:
o Workaround PPC64 PCI scan issueThis has a high chance of being the problem.
Attached patch for you to revert (-R) and retry is attached, please. :)
Thanks, I can't try it until monday (I need to be in front of the box to see the node messages ;)).
Will report about the results.
Signature · 4 lines
J.A. Magallon <jamagallon()able!es> \ Software is like sex: werewolf!able!es \ It's better when it's free Mandrake Linux release 9.2 (Cooker) for i586 Linux 2.4.23-pre6-jam1 (gcc 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk))
Quoted 16 lines · J.A. Magallon
Quoted 14 lines · Marcelo Tosatti
Quoted 7 lines · J.A. Magallon
Hi all...
With 2.4.23-pre6, my e1000 cards did not work. I was thinking it was a driver problem, but the I realized that they are not even listed in lspci.
<moilanen:austin.ibm.com>:
o Workaround PPC64 PCI scan issueThis has a high chance of being the problem.
Quoted 7 lines
Quoted 2 lines
Attached patch for you to revert (-R) and retry is attached, please. :)
Thanks, I can't try it until monday (I need to be in front of the box to see the node messages ;)).
Will report about the results.
Still doesn't work. I have tried with several kernels and put the dmesg and lspci logs here:
http://giga.cps.unizar.es/~magallon/linux/acpi/
Some things I have noticed (diff from -pre5 to -pre6):
-Booting processor 1/1 eip 2000
+Booting processor 1/1 eip 3000
...
-Setting 4 in the phys_id_present_map
-...changing IO-APIC physical APIC ID to 4 ... ok.
-Setting 5 in the phys_id_present_map
-...changing IO-APIC physical APIC ID to 5 ... ok.
init IO_APIC IRQs
- IO-APIC (apicid-pin) 4-0, 4-10, 4-11, 5-0, 5-1, 5-2, 5-3, 5-4, 5-5, 5-6, 5-7, 5-8, 5-9, 5-11, 5-12, 5-13, 5-14 not connected.
+ IO-APIC (apicid-pin) 4-0, 5-0, 5-1, 5-2, 5-3, 5-4, 5-5, 5-6, 5-7, 5-8, 5-9, 5-10, 5-11, 5-12, 5-13, 5-14, 5-15 not connected.
...
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
...
- 0a 000 00 1 0 0 0 0 0 0 00 - 0b 000 00 1 0 0 0 0 0 0 00 - 0c 003 03 0 0 0 0 0 1 1 79 - 0d 003 03 0 0 0 0 0 1 1 81 - 0e 003 03 0 0 0 0 0 1 1 89 - 0f 003 03 0 0 0 0 0 1 1 91 + 0a 003 03 0 0 0 0 0 1 1 79 + 0b 003 03 0 0 0 0 0 1 1 81 + 0c 003 03 0 0 0 0 0 1 1 89 + 0d 003 03 0 0 0 0 0 1 1 91 + 0e 003 03 0 0 0 0 0 1 1 99 + 0f 003 03 0 0 0 0 0 1 1 A1
...
-.... register #02: 01000000
-....... : arbitration: 01
+.... register #02: 03000000
+....... : arbitration: 03
...
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
+IRQ10 -> 0:10
+IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
-IRQ26 -> 1:10
-IRQ31 -> 1:15
-pre6 does not detect IRQ26-31 (second APIC?). And pre5 used them:
PCI: PCI BIOS revision 2.10 entry at 0xfdbb1, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Discovered primary peer bus 01 [IRQ]
PCI: Using IRQ router ServerWorks [1166/0200] at 00:0f.0 PCI->APIC IRQ transform: (B0,I6,P0) -> 31 PCI->APIC IRQ transform: (B1,I2,P0) -> 26
Booting with pci=noacpi just hangs the booting process.
Any ideas ?
--
Juan Antonio Magallon Lacarta \ Software is like sex:
mailto:magallon()unizar!es \ It's better when it's free
34-976-762354 - Fax: 34-976-761914 \ -- Linus Torvalds, FSF T-shirt
Grupo de Informatica Grafica Avanzada: http://giga.cps.unizar.es