Bug 5235 - PCI devices not working correctly on 2.6.13+, b44 network card causes freeze
Summary: PCI devices not working correctly on 2.6.13+, b44 network card causes freeze
Status: REJECTED DOCUMENTED
Alias: None
Product: Drivers
Classification: Unclassified
Component: PCI (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-12 17:46 UTC by Pavol Gono
Modified: 2005-09-23 22:26 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.13.1
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Pavol Gono 2005-09-12 17:46:55 UTC
Most recent kernel where this bug did not occur: 2.6.12.6

Distribution: Debian sarge (most of packages)


Hardware Environment:

lspci -vvv  on 2.6.13.1
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333]
    Subsystem: Asustek Computer, Inc. A7V333 Mainboard
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort+
<MAbort+ >SERR- <PERR-
    Latency: 0
    Region 0: Memory at f8000000 (32-bit, prefetchable) [size=64M]
    Capabilities: [a0] AGP version 2.0
        Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+
AGP3- Rate=x1,x2,x4
        Command: RQ=32 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>
    Capabilities: [c0] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333
AGP] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort+ >SERR- <PERR-
    Latency: 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: 0000f000-00000fff
    Memory behind bridge: f2000000-f3dfffff
    Prefetchable memory behind bridge: f3f00000-f7ffffff
    BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort- >Reset- FastB2B-
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:09.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
    Subsystem: Asustek Computer, Inc. A7V8X motherboard
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32
    Interrupt: pin A routed to IRQ 5
    Region 0: Memory at f1800000 (32-bit, non-prefetchable) [size=8K]
    Expansion ROM at f3ef0000 [disabled] [size=16K]
    Capabilities: [40] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=2 PME-

0000:00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Interrupt: pin A routed to IRQ 9
    Region 0: I/O ports at d800 [size=32]
    Expansion ROM at 20000000 [disabled] [size=16K]

0000:00:0d.0 Multimedia audio controller: Avance Logic Inc. ALS4000 Audio Chipset
    Subsystem: Avance Logic Inc. ALS4000 Audio Chipset
    Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32
    Interrupt: pin A routed to IRQ 9
    Region 0: I/O ports at d400 [size=128]
    Capabilities: [dc] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 80) (prog-if 00 [UHCI])
    Subsystem: Asustek Computer, Inc. VT6202 USB2.0 4 port controller
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32, Cache Line Size: 0x08 (32 bytes)
    Interrupt: pin A routed to IRQ 3
    Region 4: I/O ports at d000 [size=32]
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 80) (prog-if 00 [UHCI])
    Subsystem: Asustek Computer, Inc. VT6202 USB2.0 4 port controller
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32, Cache Line Size: 0x08 (32 bytes)
    Interrupt: pin B routed to IRQ 3
    Region 4: I/O ports at b800 [size=32]
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 80) (prog-if 00 [UHCI])
    Subsystem: Asustek Computer, Inc. VT6202 USB2.0 4 port controller
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32, Cache Line Size: 0x08 (32 bytes)
    Interrupt: pin C routed to IRQ 3
    Region 4: I/O ports at b400 [size=32]
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) (prog-if 20
[EHCI])
    Subsystem: Asustek Computer, Inc. A7V8X motherboard
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Interrupt: pin D routed to IRQ 3
    Region 0: Memory at f1000000 (32-bit, non-prefetchable) [size=256]
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
    Subsystem: Asustek Computer, Inc. A7V8X motherboard
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping+ SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 0
    Capabilities: [c0] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:11.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if 8a [Maste
    Subsystem: Asustek Computer, Inc. A7V8X motherboard
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32
    Interrupt: pin A routed to IRQ 0
    Region 4: I/O ports at b000 [size=16]
    Capabilities: [c0] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440
AGP 8x] (rev a2) (prog-if 00 [VGA])
    Subsystem: Micro-Star International Co., Ltd.: Unknown device 8950
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 64 (1250ns min, 250ns max)
    Interrupt: pin A routed to IRQ 11
    Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
    Region 1: Memory at f4000000 (32-bit, prefetchable) [size=64M]
    Expansion ROM at f3fe0000 [disabled] [size=128K]
    Capabilities: [60] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [44] AGP version 3.0
        Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+
AGP3- Rate=x1,x2,x4
        Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>


Differencies between 2.6.12.6 and 2.6.13.1:
diff -urU5 2.6.12.6-x02/lspci-vvvx 2.6.13.1-x01/lspci-vvvx
--- 2.6.12.6-x02/lspci-vvvx 2005-09-13 00:56:09.991472232 +0200
+++ 2.6.13.1-x01/lspci-vvvx 2005-09-13 00:47:01.150750944 +0200
@@ -18,19 +18,19 @@
 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333
AGP] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort+ >SERR- <PERR-
    Latency: 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
-   I/O behind bridge: 0000e000-0000dfff
+   I/O behind bridge: 0000f000-00000fff
    Memory behind bridge: f2000000-f3dfffff
    Prefetchable memory behind bridge: f3f00000-f7ffffff
    BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort- >Reset- FastB2B-
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 00: 06 11 99 b0 07 00 30 22 00 00 04 06 00 00 01 00
-10: 00 00 00 00 00 00 00 00 00 01 01 00 e0 d0 00 00
+10: 00 00 00 00 00 00 00 00 00 01 01 00 f0 00 00 00
 20: 00 f2 d0 f3 f0 f3 f0 f7 00 00 00 00 00 00 00 00
 30: 00 00 00 00 80 00 00 00 00 00 00 00 00 00 08 00

 0000:00:09.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
    Subsystem: Asustek Computer, Inc. A7V8X motherboard
@@ -48,25 +48,26 @@
 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 a8 80
 30: 00 00 ef f3 40 00 00 00 00 00 00 00 ff 01 00 00

 0000:00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
-   Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
+   Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
-   Interrupt: pin A routed to IRQ 11
+   Interrupt: pin A routed to IRQ 9
    Region 0: I/O ports at d800 [size=32]
-00: ec 10 29 80 01 00 00 02 00 00 00 02 00 00 00 00
+   Expansion ROM at 20000000 [disabled] [size=16K]
+00: ec 10 29 80 03 00 00 02 00 00 00 02 00 00 00 00
 10: 01 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 00 00 00 00 ec 10 29 80
 30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 00 00

 0000:00:0d.0 Multimedia audio controller: Avance Logic Inc. ALS4000 Audio Chipset
    Subsystem: Avance Logic Inc. ALS4000 Audio Chipset
    Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
    Latency: 32
-   Interrupt: pin A routed to IRQ 11
+   Interrupt: pin A routed to IRQ 9
    Region 0: I/O ports at d400 [size=128]
    Capabilities: [dc] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 00: 05 40 00 40 05 00 10 02 00 00 01 04 00 20 00 00


Differencies between dmesgs:
...
 PCI: Probing PCI hardware
 PCI: Probing PCI hardware (bus 00)
 Boot video device is 0000:01:00.0
 PCI: Using IRQ router VIA [1106/3177] at 0000:00:11.0
-PCI: Found IRQ 11 for device 0000:00:0a.0
-PCI: Sharing IRQ 11 with 0000:00:0d.0
-PCI: Sharing IRQ 11 with 0000:01:00.0
 spurious 8259A interrupt: IRQ7.
+PCI: Bridge: 0000:00:01.0
+  IO window: disabled.
+  MEM window: f2000000-f3dfffff
+  PREFETCH window: f3f00000-f7ffffff
+PCI: Setting latency timer of device 0000:00:01.0 to 64
 apm: BIOS version 1.2 Flags 0x0b (Driver version 1.16ac)
...
 eth0: Broadcom 4400 10/100BaseT Ethernet 00:e0:18:e8:88:61
 ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
   http://www.scyld.com/network/ne2k-pci.html
-PCI: Enabling device 0000:00:0a.0 (0000 -> 0001)
-PCI: Found IRQ 11 for device 0000:00:0a.0
-PCI: Sharing IRQ 11 with 0000:00:0d.0
-PCI: Sharing IRQ 11 with 0000:01:00.0
-eth1: RealTek RTL-8029 found at 0xd800, IRQ 11, 52:54:AB:4D:BC:C1.
+PCI: Enabling device 0000:00:0a.0 (0000 -> 0003)
+PCI: setting IRQ 9 as level-triggered
+PCI: Assigned IRQ 9 for device 0000:00:0a.0
+PCI: Sharing IRQ 9 with 0000:00:0d.0
+eth1: RealTek RTL-8029 found at 0xd800, IRQ 9, 52:54:AB:4D:BC:C1.
 PCI: Enabling device 0000:00:0d.0 (0004 -> 0005)
-PCI: Found IRQ 11 for device 0000:00:0d.0
-PCI: Sharing IRQ 11 with 0000:00:0a.0
-PCI: Sharing IRQ 11 with 0000:01:00.0
+PCI: Found IRQ 9 for device 0000:00:0d.0
+PCI: Sharing IRQ 9 with 0000:00:0a.0
 SCSI subsystem initialized
...
 drivers/usb/input/hid-core.c: v2.01:USB HID core driver
-USB Universal Host Controller Interface driver v2.2
-PCI: Found IRQ 3 for device 0000:00:10.0
+USB Universal Host Controller Interface driver v2.3
+PCI: setting IRQ 3 as level-triggered
+PCI: Assigned IRQ 3 for device 0000:00:10.0
 PCI: Sharing IRQ 3 with 0000:00:10.1
 PCI: Sharing IRQ 3 with 0000:00:10.2
 PCI: Sharing IRQ 3 with 0000:00:10.3



Software Environment:
Output from ver_linux:
Linux pgkomp 2.6.12.6-x02 #1 Thu Sep 1 14:07:40 CEST 2005 i686 GNU/Linux

Gnu C                  3.4.4
Gnu make               3.80
binutils               2.15
util-linux             2.12p
mount                  2.12p
module-init-tools      3.2-pre1
e2fsprogs              1.37
reiserfsprogs          3.6.19
reiser4progs           44:
xfsprogs               2.6.20
PPP                    2.4.3
Linux C Library        2.3.2
Dynamic linker (ldd)   2.3.2
Procps                 3.2.1
Net-tools              1.60
Console-tools          0.2.3
Sh-utils               5.2.1
Modules Loaded         binfmt_misc ipv6 ip_nat_ftp ip_nat_irc ip_conntrack_ftp
ip_conntrack_irc ipt_MASQUERADE iptable_nat ipt_REJECT ipt_LOG ipt_limit
ipt_state iptable_filter ip_conntrack ip_tables via_agp agpgart evdev pcspkr
uhci_hcd usbhid rtc usb_storage usbcore scsi_mod snd_als4000 snd_sb_common
snd_pcm_oss snd_mixer_oss snd_pcm snd_page_alloc snd_opl3_lib snd_timer
snd_hwdep snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore ne2k_pci 8390
crc32 b44 mii ide_cd cdrom


Problem Description:
With 2.6.13 and 2.6.13.1 kernels my PCI devices are not working
correctly:
1) sound card ALS4000 (snd_als4000) - during running mp3 player
repeatable sounds with regular breaks
2) network card RealTek RTL-8029 (ne2k-pci) - connected with
cross cable to another computer, even ping doesn't work
3) onboard network card Broadcom 4400 (b44) - after connecting
network cable from switch, after some seconds the system is
totally frozen; nor magic SysRq key nor mouse working, only
reboot possible

These problems are immediately noticeable after every reboot to
2.6.13 kernels. (With previous kernels, 2.6.12.6 and older, no
such problems).

I tried these configuration changes with 2.6.13, but no
improvement:
CONFIG_PREEMPT=y and CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_DEBUG_INFO=y and CONFIG_DEBUG_INFO is not set
CONFIG_PCI_MSI=y and CONFIG_PCI_MSI is not set
CONFIG_HWMON=m and CONFIG_HWMON is not set
CONFIG_INOTIFY=y and CONFIG_INOTIFY is not set

Also these commandline parameters didn't help:
pci=usepirqmask
(empty)
noapic nolapic apm=off noacpi pci=noacpi,usepirqmask

These parts worked correctly:
USB subsystem (mouse, USB stick)
X windows & gmplayer & AGP graphic card
Comment 1 Andrew Morton 2005-09-12 17:52:00 UTC
We dinked with the PCI windowing a bit post-2.6.13.   Could
you please test
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.13-git9.gz
(against 2.6.13)
Comment 2 Pavol Gono 2005-09-12 22:47:01 UTC
2.6.13-git9-x03 kernel has the very similar problems on my hardware
- I don't hear sound card while playing mp3
- after connecting network cable to b44 network card system is frozen

PCI assignement and outputs of lspci are exactly the same like 2.6.13.1

Maybe these differencies of /proc will be useful for you too (the same with diff
2.6.12.6 and 2.6.13.1):

diff -urU5 2.6.12.6-x02/proc/iomem 2.6.13-git9-x03/proc/iomem
--- 2.6.12.6-x02/proc/iomem 2005-09-13 00:56:35.611577384 +0200
+++ 2.6.13-git9-x03/proc/iomem  2005-09-13 07:31:54.306981080 +0200
@@ -2,20 +2,23 @@
 0009fc00-0009ffff : reserved
 000a0000-000bffff : Video RAM area
 000c0000-000cebff : Video ROM
 000f0000-000fffff : System ROM
 00100000-1fffbfff : System RAM
-  00100000-002e7173 : Kernel code
-  002e7174-003946ff : Kernel data
+  00100000-002dc2f9 : Kernel code
+  002dc2fa-00352ea7 : Kernel data
 1fffc000-1fffefff : ACPI Tables
 1ffff000-1fffffff : ACPI Non-volatile Storage
+20000000-20003fff : 0000:00:0a.0
 f1000000-f10000ff : 0000:00:10.3
 f1800000-f1801fff : 0000:00:09.0
   f1800000-f1801fff : b44
 f2000000-f3dfffff : PCI Bus #01
   f2000000-f2ffffff : 0000:01:00.0
+f3ef0000-f3ef3fff : 0000:00:09.0
 f3f00000-f7ffffff : PCI Bus #01
+  f3fe0000-f3ffffff : 0000:01:00.0
   f4000000-f7ffffff : 0000:01:00.0
 f8000000-fbffffff : 0000:00:00.0
 fec00000-fec00fff : reserved
 fee00000-fee00fff : reserved
 ffff0000-ffffffff : reserved
diff -urU5 2.6.12.6-x02/proc/ioports 2.6.13-git9-x03/proc/ioports
--- 2.6.12.6-x02/proc/ioports   2005-09-13 00:56:35.611577384 +0200
+++ 2.6.13-git9-x03/proc/ioports    2005-09-13 07:31:54.306981080 +0200
@@ -26,5 +26,7 @@
   d000-d01f : uhci_hcd
 d400-d47f : 0000:00:0d.0
   d400-d47f : ALS4000
 d800-d81f : 0000:00:0a.0
   d800-d81f : ne2k-pci
+e400-e47f : 0000:00:11.0
+e800-e80f : 0000:00:11.0
Comment 3 Andrew Morton 2005-09-12 23:00:06 UTC
bugme-daemon@kernel-bugs.osdl.org wrote:
>
> http://bugzilla.kernel.org/show_bug.cgi?id=5235
> 
> 
> 
> 
> 
>  ------- Additional Comments From pavol_gono@yahoo.com  2005-09-12 22:47 -------
>  2.6.13-git9-x03 kernel has the very similar problems on my hardware

OK, thanks.  So we haven't fixed it yet.

Linus, Ivan, could you please take a look at
http://bugzilla.kernel.org/show_bug.cgi?id=5235 ?

especially this:

-   I/O behind bridge: 0000e000-0000dfff
+   I/O behind bridge: 0000f000-00000fff

a size of -1...  

Comment 4 Anonymous Emailer 2005-09-13 00:00:29 UTC
Reply-To: ink@jurassic.park.msu.ru

On Mon, Sep 12, 2005 at 10:59:33PM -0700, Andrew Morton wrote:
> especially this:
> 
> -   I/O behind bridge: 0000e000-0000dfff
> +   I/O behind bridge: 0000f000-00000fff
> 
> a size of -1...  

This is perfectly fine - there are no IO ports behind the
AGP bridge (video card has only MMIO registers), so IO window
gets disabled.

I'd rather blame supposedly wrong IRQ assignment:

-PCI: Enabling device 0000:00:0a.0 (0000 -> 0001)
-PCI: Found IRQ 11 for device 0000:00:0a.0
-PCI: Sharing IRQ 11 with 0000:00:0d.0
-PCI: Sharing IRQ 11 with 0000:01:00.0
-eth1: RealTek RTL-8029 found at 0xd800, IRQ 11, 52:54:AB:4D:BC:C1.
+PCI: Enabling device 0000:00:0a.0 (0000 -> 0003)
+PCI: setting IRQ 9 as level-triggered
+PCI: Assigned IRQ 9 for device 0000:00:0a.0
+PCI: Sharing IRQ 9 with 0000:00:0d.0
+eth1: RealTek RTL-8029 found at 0xd800, IRQ 9, 52:54:AB:4D:BC:C1.

Ivan.

Comment 5 Andrew Morton 2005-09-13 00:12:05 UTC
Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote:
>
> On Mon, Sep 12, 2005 at 10:59:33PM -0700, Andrew Morton wrote:
> > especially this:
> > 
> > -   I/O behind bridge: 0000e000-0000dfff
> > +   I/O behind bridge: 0000f000-00000fff
> > 
> > a size of -1...  
> 
> This is perfectly fine - there are no IO ports behind the
> AGP bridge (video card has only MMIO registers), so IO window
> gets disabled.
> 
> I'd rather blame supposedly wrong IRQ assignment:
> 
> -PCI: Enabling device 0000:00:0a.0 (0000 -> 0001)
> -PCI: Found IRQ 11 for device 0000:00:0a.0
> -PCI: Sharing IRQ 11 with 0000:00:0d.0
> -PCI: Sharing IRQ 11 with 0000:01:00.0
> -eth1: RealTek RTL-8029 found at 0xd800, IRQ 11, 52:54:AB:4D:BC:C1.
> +PCI: Enabling device 0000:00:0a.0 (0000 -> 0003)
> +PCI: setting IRQ 9 as level-triggered
> +PCI: Assigned IRQ 9 for device 0000:00:0a.0
> +PCI: Sharing IRQ 9 with 0000:00:0d.0
> +eth1: RealTek RTL-8029 found at 0xd800, IRQ 9, 52:54:AB:4D:BC:C1.
> 

Crap.  Len, could you please take a look and if this is an APCI problem,
set the bug ownership appropriately?

Comment 6 Len Brown 2005-09-13 01:16:57 UTC
> Also these commandline parameters didn't help:
> pci=usepirqmask
> (empty)
> noapic nolapic apm=off noacpi pci=noacpi,usepirqmask

"noacpi" does nothing.
does booting with "acpi=off" make any difference?
If yes, does booting with "acpi=noirq" or "pnpacpi=off"
make the same difference?

it would be ideal if you could attach the complete
dmesg files rather than just the diff.
Comment 7 Pavol Gono 2005-09-13 01:58:57 UTC
I was not able add atachements via "Create a New Attachment", so I put it to
http://decef.elf.stuba.sk/~pg20207/bug_5235_2.6.13.tar.bz2
There are dmesgs, .configs, lspcis and /proc files from 2.6.12.6, 2.6.13.1 and
2.6.13-git9

I'll try "acpi=off" after 10 hours, currently I am only remotely connected to my
machine.
Comment 8 Bjorn Helgaas 2005-09-13 10:08:37 UTC
> I'll try "acpi=off" after 10 hours 
 
But from the dmesg logs, it looks like CONFIG_ACPI isn't even 
turned on. 
 
I'm a dunce and haven't figured out a good way to browse per-file 
revision history.  But if I *could* do that, I'd start looking 
at arch/i386/pci/irq.c. 
Comment 9 Pavol Gono 2005-09-13 11:21:07 UTC
> But from the dmesg logs, it looks like CONFIG_ACPI isn't even 
> turned on.

Of course, I didn't realise this... I use only APM for powering down machine.
I tried "acpi=off" and logicaly no real change in behaviour of kernel.

I noticed another thing - when I leaved machine in frozen state (2.6.13-git9)
cca 2 hours, then I rebooted machine and it was not able to boot - DISK FAILURE
or such message. Then I switched off machine for some minutes and after that it
continued working normally (2.6.12.6). I don't know whether this has some
relation to kernel problem, but I don't remember disk failures in past.

Some ideas how to narrow problem? Now I have some time to experiments.
Comment 10 Bjorn Helgaas 2005-09-13 12:10:41 UTC
> Some ideas how to narrow problem? Now I have some time to experiments.

Somebody probably has better ideas, but since I don't know how
non-ACPI IRQ routing works, my approach would be the brute-force
one of sprinkling printks through pcibios_lookup_irq() and related
things, and try to figure out what changed between 2.6.12.6 and
2.6.13.  And maybe booting with "debug apic=debug" would cause
more useful output.

Comment 11 Greg Kroah-Hartman 2005-09-13 12:18:25 UTC
How about enabling ACPI for your system?  That might fix the routing issue...
Comment 12 Pavol Gono 2005-09-13 13:48:45 UTC
> How about enabling ACPI for your system?  That might fix the routing issue...

This solved my problem, now network and sound cards work correctly on 2.6.13.1
Changes in .config:
CONFIG_ACPI=y
CONFIG_ACPI_DEBUG=y
CONFIG_APM is not set
CONFIG_PCI_DEBUG=y

Kernel command line: pci=usepirqmask debug apic=debug

Details:
http://decef.elf.stuba.sk/~pg20207/bug_5235_with_acpi.tar.bz2
Comment 13 Greg Kroah-Hartman 2005-09-13 13:55:18 UTC
Great, I'll mark this as fixed now...
Comment 14 Andrew Morton 2005-09-13 16:08:50 UTC
bugme-daemon@kernel-bugs.osdl.org wrote:
>
> I'm a dunce and haven't figured out a good way to browse per-file 
>  revision history.

http://www.kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree

Comment 15 Bjorn Helgaas 2005-09-15 07:55:15 UTC
> Great, I'll mark this as fixed now...

Well, but...  it *used* to work without ACPI.  And now it doesn't.
Is that an acceptable regression?  How do we recognize and deal with
future, similar bug reports?

I'd feel better if we understood exactly what changed in the non-ACPI
case, and we made a conscious decision that it was unavoidable.<html><head><meta DEFANGED_name="qrichtext" content="1" /></head><body DEFANGED_style="font-size:12pt;font-family:Courier New">
<p>&gt; Great, I'll mark this as fixed now...</p>
<p></p>
<p>Well, but...  it *used* to work without ACPI.  And now it doesn't.</p>
<p>Is that an acceptable regression?  How do we recognize and deal with</p>
<p>future, similar bug reports?</p>
<p></p>
<p>I'd feel better if we understood exactly what changed in the non-ACPI</p>
<p>case, and we made a conscious decision that it was unavoidable.</p>
</body></html>
Comment 16 Pavol Gono 2005-09-20 12:39:34 UTC
Hopefully bugzilla won't crash this time :)

After narrowing this bug in code it seems the problem is hardware specific. In
nonACPI case, kernel 2.6.12-git5 was working correctly, but 2.6.12-git6 not. I
find out the small diff, which brought problems:

diff -Naurp linux-x03/arch/i386/pci/irq.c linux6/arch/i386/pci/irq.c
--- linux-x03/arch/i386/pci/irq.c   2005-06-17 21:48:29.000000000 +0200
+++ linux6/arch/i386/pci/irq.c  2005-09-18 22:46:25.619910392 +0200
@@ -227,6 +227,24 @@ static int pirq_via_set(struct pci_dev *
 }

 /*
+ * The VIA pirq rules are nibble-based, like ALI,
+ * but without the ugly irq number munging.
+ * However, for 82C586, nibble map is different .
+ */
+static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
+{
+   static unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+   return read_config_nybble(router, 0x55, pirqmap[pirq-1]);
+}
+
+static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int
pirq, int irq)
+{
+   static unsigned int pirqmap[4] = { 3, 2, 5, 1 };
+   write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
+   return 1;
+}
+
+/*
  * ITE 8330G pirq rules are nibble-based
  * FIXME: pirqmap may be { 1, 0, 3, 2 },
  *       2+3 are both mapped to irq 9 on my system
@@ -512,6 +530,10 @@ static __init int via_router_probe(struc
    switch(device)
    {
        case PCI_DEVICE_ID_VIA_82C586_0:
+           r->name = "VIA";
+           r->get = pirq_via586_get;
+           r->set = pirq_via586_set;
+           return 1;
        case PCI_DEVICE_ID_VIA_82C596:
        case PCI_DEVICE_ID_VIA_82C686:
        case PCI_DEVICE_ID_VIA_8231:

After this patch the common problems appeared - sound and network cards 
broken. My motherboard is Asus A7V333-X, Northbridge VIA KT333, Southbridge VIA 
VT8235.
Comment 17 Pavol Gono 2005-09-20 14:44:28 UTC
Logs, .configs and /proc files are in
http://decef.elf.stuba.sk/~pg20207/bug_5235_via.tar.bz2
if someone wants to see details
Comment 18 Shaohua 2005-09-20 18:33:40 UTC
You might ping Aleksey_Gorelov@Phoenix.com, the patch is added by him from the 
log. He should know about your issue.
Comment 19 Aleksey Gorelov 2005-09-21 16:17:45 UTC
  Similar problem has been reported before here:
http://groups.google.com/group/linux.kernel/browse_thread/thread/def4ca19dbc3cd4/5cffbf349f2c87a4?tvc=2&q=Aleksey+Gorelov&hl=en#5cffbf349f2c87a4
and was related to bug in BIOS reporting 82C686 router compatible to 586. 

  I suspect BIOS on this board has similar issue: reports VT8235 router to be
compatible with 586 one - which is obviously not true. Patch from the link above
has already incorporated in both 2.6 & 2.4 series, but might not work in this
particular case. Can you please try something like this (patch agains 2.6.14-rc2):

--- linux-2.6.14-rc2/arch/i386/pci/irq_old.c	2005-09-21 16:08:17.000000000 -0700
+++ linux-2.6.14-rc2/arch/i386/pci/irq.c	2005-09-21 16:13:15.000000000 -0700
@@ -552,10 +552,27 @@
 {
 	/* FIXME: We should move some of the quirk fixup stuff here */
 
-	if (router->device == PCI_DEVICE_ID_VIA_82C686 &&
-			device == PCI_DEVICE_ID_VIA_82C586_0) {
-		/* Asus k7m bios wrongly reports 82C686A as 586-compatible */
-		device = PCI_DEVICE_ID_VIA_82C686;
+	/*
+	 * work arounds for some buggy BIOSes
+	 */
+	if (device == PCI_DEVICE_ID_VIA_82C586_0) {
+		switch(router->device)
+		{
+			case PCI_DEVICE_ID_VIA_82C686:
+				/*
+				 * Asus k7m bios wrongly reports 82C686A 
+				 * as 586-compatible 
+				 */
+				device = PCI_DEVICE_ID_VIA_82C686;
+				break;
+			case PCI_DEVICE_ID_VIA_8235:
+				/**
+				 * Asus a7v-x bios wrongly reports 8235
+				 * as 586-compatible
+				 */
+				device = PCI_DEVICE_ID_VIA_8235;
+				break;
+		}
 	}
 
 	switch(device)
@@ -568,6 +585,7 @@
 		case PCI_DEVICE_ID_VIA_82C596:
 		case PCI_DEVICE_ID_VIA_82C686:
 		case PCI_DEVICE_ID_VIA_8231:
+		case PCI_DEVICE_ID_VIA_8235:
 		/* FIXME: add new ones for 8233/5 */
 			r->name = "VIA";
 			r->get = pirq_via_get;
Comment 20 Pavol Gono 2005-09-23 22:26:33 UTC
> Can you please try something like this (patch agains 2.6.14-rc2):

This patch worked fine for me
original 2.6.14-rc2 - the same problems with net/sound like previous
2.6.14-rc2-x01 (with your patch) - without problems

Details:
http://decef.elf.stuba.sk/~pg20207/bug_5235_via_solved.tar.bz2

Note You need to log in before you can comment on or make changes to this bug.