Subject: Re: ioapic, PCI_BUS_FIXUP and power
To: David Young <dyoung@pobox.com>
From: Mark Davies <mark@mcs.vuw.ac.nz>
List: current-users
Date: 05/30/2007 13:17:12
On Wed, 30 May 2007, David Young wrote:
> > With ioapic enabled in the kernel, bge fails with watchdog
> > timeout errors etc unless I define PCI_BUS_FIXUP. However
> > defining PCI_BUS_FIXUP is what causes "halt -p" not to complete
> > and furthermore it causes the machine to hang if I unplug the ac
> > adapter (to switch to battery). So is there something in
> > PCI_BUS_FIXUP thats not handling power management properly?
>
> Perhaps the information that this script (attached) prints before
> and after PCI_BUS_FIXUP may expose the critical difference.
Full output from the script can be found at
http://www.mcs.vuw.ac.nz/~mark/pcidump.withoutfixup
and http://www.mcs.vuw.ac.nz/~mark/pcidump.withfixup
The differences are:
--- pcidump.withoutfixup 2007-05-30 13:09:07.000000000 +1200
+++ pcidump.withfixup 2007-05-30 13:09:07.000000000 +1200
@@ -389,7 +389,7 @@
Cache Line Size: 0x10
Type 1 (PCI-PCI bridge) header:
- 0x10: 0x00000000 0x00000000 0x000b0b00 0x200000f0
+ 0x10: 0x00000000 0x00000000 0x00010100 0x200000f0
0x20: 0x0000fff0 0x0001fff1 0x00000000 0x00000000
0x30: 0x00000000 0x00000040 0x00000000 0x00020100
@@ -398,8 +398,8 @@
Base address register at 0x14
not implemented(?)
Primary bus number: 0x00
- Secondary bus number: 0x0b
- Subordinate bus number: 0x0b
+ Secondary bus number: 0x01
+ Subordinate bus number: 0x01
Secondary bus latency timer: 0x00
Secondary status register: 0x2000
66 MHz capable: off
@@ -502,7 +502,7 @@
Cache Line Size: 0x10
Type 1 (PCI-PCI bridge) header:
- 0x10: 0x00000000 0x00000000 0x000c0c00 0x200000f0
+ 0x10: 0x00000000 0x00000000 0x00020200 0x200000f0
0x20: 0xdfd0dfd0 0x0001fff1 0x00000000 0x00000000
0x30: 0x00000000 0x00000040 0x00000000 0x00020200
@@ -511,8 +511,8 @@
Base address register at 0x14
not implemented(?)
Primary bus number: 0x00
- Secondary bus number: 0x0c
- Subordinate bus number: 0x0c
+ Secondary bus number: 0x02
+ Subordinate bus number: 0x02
Secondary bus latency timer: 0x00
Secondary status register: 0x2000
66 MHz capable: off
@@ -571,7 +571,7 @@
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x00000000 0x00000000 0xc0110000 0x00000000
- 0xe0: 0x83c70f00 0x00080706 0x00000000 0x00000000
+ 0xe0: 0x03c70f00 0x00080706 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00020f86 0x00000000
-- bus=000 dev=28 fn=2 --
@@ -615,7 +615,7 @@
Cache Line Size: 0x10
Type 1 (PCI-PCI bridge) header:
- 0x10: 0x00000000 0x00000000 0x00090900 0x200000f0
+ 0x10: 0x00000000 0x00000000 0x00030300 0x200000f0
0x20: 0xdfc0dfc0 0x0001fff1 0x00000000 0x00000000
0x30: 0x00000000 0x00000040 0x00000000 0x00020300
@@ -624,8 +624,8 @@
Base address register at 0x14
not implemented(?)
Primary bus number: 0x00
- Secondary bus number: 0x09
- Subordinate bus number: 0x09
+ Secondary bus number: 0x03
+ Subordinate bus number: 0x03
Secondary bus latency timer: 0x00
Secondary status register: 0x2000
66 MHz capable: off
@@ -690,7 +690,7 @@
-- bus=000 dev=29 fn=0 --
PCI configuration registers:
Common header:
- 0x00: 0x27c88086 0x02880005 0x0c030001 0x00800000
+ 0x00: 0x27c88086 0x02800005 0x0c030001 0x00800000
Vendor Name: Intel (0x8086)
Device Name: 82801GB/GR USB UHCI Controller (0x27c8)
@@ -706,7 +706,7 @@
System error (SERR): off
Fast back-to-back transactions: off
Interrupt disable: off
- Status register: 0x0288
+ Status register: 0x0280
Capability List support: off
66 MHz capable: off
User Definable Features (UDF) support: off
@@ -765,7 +765,7 @@
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
- 0xc0: 0x00003f00 0x00000000 0x00010000 0x00000000
+ 0xc0: 0x00002f00 0x00000000 0x00010000 0x00000000
0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00020f86 0x00000000
@@ -1022,7 +1022,7 @@
-- bus=000 dev=29 fn=7 --
PCI configuration registers:
Common header:
- 0x00: 0x27cc8086 0x02980106 0x0c032001 0x00000000
+ 0x00: 0x27cc8086 0x02900106 0x0c032001 0x00000000
Vendor Name: Intel (0x8086)
Device Name: 82801GB/GR USB EHCI Controller (0x27cc)
@@ -1038,7 +1038,7 @@
System error (SERR): on
Fast back-to-back transactions: off
Interrupt disable: off
- Status register: 0x0298
+ Status register: 0x0290
Capability List support: on
66 MHz capable: off
User Definable Features (UDF) support: off
@@ -1096,7 +1096,7 @@
Device-dependent header:
0x40: 0x00000000 0x00000000 0x00000000 0x00000000
0x50: 0xc9c25801 0x00000000 0x20a0000a 0x00000000
- 0x60: 0x01ff2020 0x00000000 0x01000001 0xe00c0000
+ 0x60: 0x01ff2020 0x00000000 0x01000001 0xe0080000
0x70: 0x3fdf0000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000011 0x00000000 0x00000000
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
@@ -1148,7 +1148,7 @@
Cache Line Size: 0x00
Type 1 (PCI-PCI bridge) header:
- 0x10: 0x00000000 0x00000000 0x20040300 0x228000f0
+ 0x10: 0x00000000 0x00000000 0x20050400 0x228000f0
0x20: 0x0000fff0 0x0001fff1 0x00000000 0x00000000
0x30: 0x00000000 0x00000050 0x00000000 0x000200ff
@@ -1157,8 +1157,8 @@
Base address register at 0x14
not implemented(?)
Primary bus number: 0x00
- Secondary bus number: 0x03
- Subordinate bus number: 0x04
+ Secondary bus number: 0x04
+ Subordinate bus number: 0x05
Secondary bus latency timer: 0x20
Secondary status register: 0x2280
66 MHz capable: off
@@ -1472,7 +1472,7 @@
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00020f86 0x00000000
--- bus=012 dev=00 fn=0 --
+-- bus=002 dev=00 fn=0 --
PCI configuration registers:
Common header:
0x00: 0x42228086 0x00100106 0x02800002 0x00000010
@@ -1559,13 +1559,13 @@
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0xc822d001 0x0d000000
0xd0: 0x0080e005 0x00000000 0x00000000 0x00000000
- 0xe0: 0x00110010 0x00000ec0 0x001a0810 0x00071c11
+ 0xe0: 0x00110010 0x00000ec0 0x001b0810 0x00071c11
0xf0: 0x10110042 0x00000000 0x00000000 0x00000000
--- bus=009 dev=00 fn=0 --
+-- bus=003 dev=00 fn=0 --
PCI configuration registers:
Common header:
- 0x00: 0x160014e4 0x00180106 0x02000002 0x00000010
+ 0x00: 0x160014e4 0x00100106 0x02000002 0x00000010
Vendor Name: Broadcom (0x14e4)
Device Name: BCM5752 10/100/1000 Ethernet (0x1600)
@@ -1581,7 +1581,7 @@
System error (SERR): on
Fast back-to-back transactions: off
Interrupt disable: off
- Status register: 0x0018
+ Status register: 0x0010
Capability List support: on
66 MHz capable: off
User Definable Features (UDF) support: off
@@ -1640,26 +1640,26 @@
Device-dependent header:
0x40: 0x00000000 0x00000000 0xc0025001 0x64002100
- 0x50: 0x00285803 0x6812e6b8 0x0086d005 0xe4bdd8d4
- 0x60: 0x2ac7c4ae 0x00007f7c 0x60020088 0x76180000
- 0x70: 0x00001290 0x00000040 0x00006804 0x00000000
+ 0x50: 0x00e85803 0xe9f2e6fc 0x0086d005 0xe4fddcfc
+ 0x60: 0xebefe6be 0x0000ff7e 0x60020088 0x76180000
+ 0x70: 0x00001292 0x00000040 0x00006804 0x00000000
0x80: 0x00080082 0x00000000 0x04930034 0x00080082
- 0x90: 0x01000028 0x00000000 0x00000000 0x000000ff
- 0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
+ 0x90: 0x01000629 0x00000000 0x00000000 0x000001cb
+ 0xa0: 0x00000000 0x000000cc 0x00000000 0x00000181
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
- 0xc0: 0x00000000 0x00004010 0x0000800e 0x00000000
- 0xd0: 0x00010010 0x05040fa2 0x00105000 0x00035c11
+ 0xc0: 0x00000000 0x00004010 0x0000000e 0x00000000
+ 0xd0: 0x00010010 0x05040fa2 0x001a5000 0x00035c11
0xe0: 0x10110042 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
--- bus=003 dev=01 fn=0 --
+-- bus=004 dev=01 fn=0 --
PCI configuration registers:
Common header:
- 0x00: 0x69721217 0x04100007 0x06070040 0x00024000
+ 0x00: 0x69721217 0x04100107 0x06070040 0x00024000
Vendor Name: O2 Micro (0x1217)
Device Name: OZ6912/OZ6972 PCI-CardBus Bridge (0x6972)
- Command register: 0x0007
+ Command register: 0x0107
I/O space accesses: on
Memory space accesses: on
Bus mastering: on
@@ -1668,7 +1668,7 @@
Palette snooping: off
Parity error checking: off
Address/data stepping: off
- System error (SERR): off
+ System error (SERR): on
Fast back-to-back transactions: off
Interrupt disable: off
Status register: 0x0410
@@ -1693,14 +1693,14 @@
Cache Line Size: 0x00
Type 2 (PCI-CardBus bridge) header:
- 0x10: 0x40000000 0x020000a0 0x20040403 0xfffff000
+ 0x10: 0x3f700000 0x020000a0 0x20050504 0xfffff000
0x20: 0x00000000 0xfffff000 0x00000000 0x0000fffd
- 0x30: 0x00000001 0x0000fffd 0x00000001 0x04c001ff
+ 0x30: 0x00000001 0x0000fffd 0x00000001 0x04c00105
0x40: 0x01c21028 0x00000001
Base address register at 0x10 (CardBus socket/ExCA registers)
type: 32-bit nonprefetchable memory
- base: 0x40000000, not sized
+ base: 0x3f700000, not sized
Capability list pointer: 0xa0
Secondary status register: 0x0200
66 MHz capable: off
@@ -1713,9 +1713,9 @@
Bus initiator aborts terminate initiator transactions: off
System error: off
Parity error: off
- PCI bus number: 0x03
- CardBus bus number: 0x04
- Subordinate bus number: 0x04
+ PCI bus number: 0x04
+ CardBus bus number: 0x05
+ Subordinate bus number: 0x05
CardBus latency timer: 0x20
CardBus memory region 0:
base register: 0xfffff000
@@ -1729,7 +1729,7 @@
CardBus I/O region 1:
base register: 0x0000fffd
limit register: 0x00000001
- Interrupt line: 0xff
+ Interrupt line: 0x05
Interrupt pin: 0x01 (pin A)
Bridge control register: 0x04c0
Parity error response: off
@@ -1758,7 +1758,7 @@
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000000 0x00000000 0x01001002
0x90: 0x00400001 0x00000000 0x00000000 0x00000000
- 0xa0: 0xfe020001 0x00c04000 0x00000000 0x00000000
+ 0xa0: 0xfe020001 0x00c04000 0x00000000 0x00000001
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x08004000 0x808223ea 0x00000000 0x00000000
cheers
mark