LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
@ 2004-05-16 18:04 Eric BENARD / Free
  2004-05-16 21:47 ` Jeff Garzik
  0 siblings, 1 reply; 6+ messages in thread
From: Eric BENARD / Free @ 2004-05-16 18:04 UTC (permalink / raw)
  To: linux-kernel

1- bad PCI device ID for SiS ISA bridge

2- In 2.6.3-rc2 (and 2.4.x), the PCI device ID of the ISA bridge of the 
SiS630e is 0x0008. This ID is used by sis900.c in order to get the MAC 
adress. 
In 2.6.6, the PCI device ID of the ISA bridge of the SiS630E is 0x0018. The 
SiS900 driver fail to read MAC adress and exit with the following message : 
eth0: Can not find ISA bridge

3- SIS630E, ISA bridge, PCI Device ID, SIS900

4- aneto:~# cat /proc/version
Linux version 2.6.6 (ebenard@vignemale) (version gcc 3.3.3 (Debian 20040429)) 
#2 Sun May 16 19:34:22 CEST 2004

5- No oops

6- 
2.6.3-rc2 :
aneto:~# cat /sys/bus/pci/devices/0000\:00\:01.0/device
0x0008
aneto:~# cat /proc/bus/pci/devices
.../...
0008    10390008        0       00000000        00000000        00000000        
00000000        00000000        00000000 00000000        00000000        
00000000        00000000        00000000        00000000        
0000000000000000
0009    10390900        c       0000da01        f3ffd000        00000000        
00000000        00000000        00000000 f3fc0000        00000100        
00001000        00000000        00000000        00000000        
0000000000020000 sis900
.../...
aneto:~# lspci
.../...
0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC 
Bridge)
0000:00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI 
Fast Ethernet (rev 81)
.../...

2.6.6 :
aneto:~# cat /sys/bus/pci/devices/0000\:00\:01.0/device
0x0018
aneto:~# cat /proc/bus/pci/devices
.../...
0008    10390018        0       00000000        00000000        00000000        
00000000        00000000        00000000 00000000        00000000        
00000000        00000000        00000000        00000000        
0000000000000000
0009    10390900        c       0000da01        f3ffd000        00000000        
00000000        00000000        00000000 f3fc0000        00000100        
00001000        00000000        00000000        00000000        
0000000000020000 sis900
.../...
aneto:~# lspci
.../...
0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC 
Bridge)
0000:00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI 
Fast Ethernet (rev 81)
.../...


7- Linux aneto 2.6.6 #2 Sun May 16 19:34:22 CEST 2004 i686 GNU/Linux

Gnu C                  3.3.3
Gnu make               3.80
binutils               2.14.90.0.7
util-linux             2.12
mount                  2.12
module-init-tools      3.0-pre10
e2fsprogs              1.35
pcmcia-cs              3.2.5
PPP                    2.4.2
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.0.91
Modules Loaded         hostap_crypt_wep hostap_cs ipt_TOS ipt_MASQUER                 
ADE ipt_REJECT ipt_pkttype ipt_LOG ipt_TCPMSS ipt_state ip_nat_irc ip                 
_nat_tftp ip_nat_ftp ip_conntrack_irc ip_conntrack_tftp ip_conntrack_                 
ftp ipt_multiport ipt_conntrack iptable_filter iptable_mangle iptable                 
_nat ip_conntrack ip_tables lp bridge hostap eagle_usb


8- A quick fix to get sis900.c running (which doesn't explain why the PCI 
Device ID changed from 2.6.3-rc2 to 2.6.6) :
change line 263 from
	if ((isa_bridge = pci_find_device(0x1039, 0x0008, isa_bridge)) == NULL
to
	if ((isa_bridge = pci_find_device(0x1039, 0x0018, isa_bridge)) == NULL

Eric

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
  2004-05-16 18:04 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge Eric BENARD / Free
@ 2004-05-16 21:47 ` Jeff Garzik
  2004-05-17  3:50   ` David Dillow
  2004-05-17  6:29   ` Eric BENARD / Free
  0 siblings, 2 replies; 6+ messages in thread
From: Jeff Garzik @ 2004-05-16 21:47 UTC (permalink / raw)
  To: Eric BENARD / Free; +Cc: linux-kernel, Andrew Morton, webvenza, dominik.karall

Eric BENARD / Free wrote:
> 1- bad PCI device ID for SiS ISA bridge
> 
> 2- In 2.6.3-rc2 (and 2.4.x), the PCI device ID of the ISA bridge of the 
> SiS630e is 0x0008. This ID is used by sis900.c in order to get the MAC 
> adress. 
> In 2.6.6, the PCI device ID of the ISA bridge of the SiS630E is 0x0018. The 
> SiS900 driver fail to read MAC adress and exit with the following message : 
> eth0: Can not find ISA bridge
[...]
> 8- A quick fix to get sis900.c running (which doesn't explain why the PCI 
> Device ID changed from 2.6.3-rc2 to 2.6.6) :
> change line 263 from
> 	if ((isa_bridge = pci_find_device(0x1039, 0x0008, isa_bridge)) == NULL
> to
> 	if ((isa_bridge = pci_find_device(0x1039, 0x0018, isa_bridge)) == NULL


I'm not sure I understand your message.

Are you suggesting
a) the hardware PCI id changed from 0x0008 to 0x0018 when booting 2.6.6.
	or
b) sis900.c changed when booting 2.6.6.

If "a", the PCI id in sis900.c seems to be 0x0008 in both 2.4 and 2.6. 
And further, I did not see any changes to this line of code in while 
searching 2.6.2 -> 2.6.6 patches on ftp.kernel.org.  I would lean 
towards a solution that modified sis900.c to check for -both- 0x08 and 0x18.

If "b", I bet that is a problem related to ACPI or some other 
non-sis900.c piece of code :)  sis900.c has not changed very much in the 
past several kernel releases.

	Jeff




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
  2004-05-16 21:47 ` Jeff Garzik
@ 2004-05-17  3:50   ` David Dillow
  2004-05-17  6:48     ` Eric BENARD / Free
  2004-05-17  6:29   ` Eric BENARD / Free
  1 sibling, 1 reply; 6+ messages in thread
From: David Dillow @ 2004-05-17  3:50 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Eric BENARD / Free, linux-kernel, Andrew Morton, webvenza,
	dominik.karall

On Sun, 2004-05-16 at 17:47, Jeff Garzik wrote:
> Eric BENARD / Free wrote:
> > 1- bad PCI device ID for SiS ISA bridge
> > 
> > 2- In 2.6.3-rc2 (and 2.4.x), the PCI device ID of the ISA bridge of the 
> > SiS630e is 0x0008. This ID is used by sis900.c in order to get the MAC 
> > adress. 
> > In 2.6.6, the PCI device ID of the ISA bridge of the SiS630E is 0x0018. The 
> > SiS900 driver fail to read MAC adress and exit with the following message : 
> > eth0: Can not find ISA bridge
> [...]
[...]
> I'm not sure I understand your message.
> 
> Are you suggesting
> a) the hardware PCI id changed from 0x0008 to 0x0018 when booting 2.6.6.
> 	or
> b) sis900.c changed when booting 2.6.6.
> 
> If "a", the PCI id in sis900.c seems to be 0x0008 in both 2.4 and 2.6. 
> And further, I did not see any changes to this line of code in while 
> searching 2.6.2 -> 2.6.6 patches on ftp.kernel.org.  I would lean 
> towards a solution that modified sis900.c to check for -both- 0x08 and 0x18.

I'm not sure I understand the message, either. I can confirm that SiS's
LPC-to-ISA bridges can change their device ID based on writes to the PCI
config space -- 0x08 and 0x18 are both valid ids for that hardware.

Eric, if you'll send me an lspci -xxx on the ISA bridge run under both
kernels, that may be interesting. Then the fun part will be finding what
changed in the kernel to cause that.

In any event, I think it would be valid to have sis900 check for both
ids.

Dave

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
  2004-05-16 21:47 ` Jeff Garzik
  2004-05-17  3:50   ` David Dillow
@ 2004-05-17  6:29   ` Eric BENARD / Free
  2004-05-17 10:00     ` Daniele Venzano
  1 sibling, 1 reply; 6+ messages in thread
From: Eric BENARD / Free @ 2004-05-17  6:29 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-kernel, Andrew Morton, webvenza, dominik.karall

On Sunday 16 May 2004 23:47, Jeff Garzik wrote:
> Are you suggesting
> a) the hardware PCI id changed from 0x0008 to 0x0018 when booting 2.6.6.
> 	or
> b) sis900.c changed when booting 2.6.6.
>
> If "a", the PCI id in sis900.c seems to be 0x0008 in both 2.4 and 2.6.
> And further, I did not see any changes to this line of code in while
> searching 2.6.2 -> 2.6.6 patches on ftp.kernel.org.  I would lean
> towards a solution that modified sis900.c to check for -both- 0x08 and
> 0x18.
>
This is what I mean in my email. 
Yes sis900.c should check for both 0x08 and 0x18.
But, I don't understand why the ID has changed (on the same hardware) between 
2.6.3 & 2.6.6 

Eric

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
  2004-05-17  3:50   ` David Dillow
@ 2004-05-17  6:48     ` Eric BENARD / Free
  0 siblings, 0 replies; 6+ messages in thread
From: Eric BENARD / Free @ 2004-05-17  6:48 UTC (permalink / raw)
  To: David Dillow
  Cc: Jeff Garzik, linux-kernel, Andrew Morton, webvenza, dominik.karall

[-- Attachment #1: Type: text/plain, Size: 2429 bytes --]

On Monday 17 May 2004 05:50, David Dillow wrote:
> I'm not sure I understand the message, either. I can confirm that SiS's
> LPC-to-ISA bridges can change their device ID based on writes to the PCI
> config space -- 0x08 and 0x18 are both valid ids for that hardware.
>
> Eric, if you'll send me an lspci -xxx on the ISA bridge run under both
> kernels, that may be interesting. Then the fun part will be finding what
> changed in the kernel to cause that.
>
2.6.6
0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC 
Bridge)
00: 39 10 18 00 0f 00 00 02 00 00 01 06 00 00 80 00
10: 00 00 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 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: c8 80 0a 0c 0b 00 14 19 10 ef 00 00 11 20 04 01
50: 11 28 02 01 60 0a 63 0a a9 04 12 00 4d 17 00 00
60: 00 80 c0 80 40 c1 00 00 00 00 80 00 80 80 00 00
70: 80 00 d8 01 00 50 00 00 00 00 00 00 01 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2.6.3-rc2
0000:00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC 
Bridge)
00: 39 10 08 00 0f 00 00 02 00 00 01 06 00 00 80 00
10: 00 00 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 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 88 80 0a 0c 0b 00 14 19 10 ef 00 00 11 20 04 01
50: 11 28 02 01 62 0a 63 0a a9 04 12 00 4d 17 00 00
60: 0c 80 c0 80 40 c1 00 00 00 00 80 00 80 80 00 00
70: 80 00 d8 01 00 50 00 00 00 00 00 00 01 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


> In any event, I think it would be valid to have sis900 check for both
> ids.
>
Here is a patch for this.

Eric

[-- Attachment #2: sis900.patch --]
[-- Type: text/x-diff, Size: 594 bytes --]

--- linux-2.6.6.orig/drivers/net/sis900.c	2004-05-17 08:41:55.000000000 +0200
+++ linux-2.6.6/drivers/net/sis900.c	2004-05-17 08:37:25.000000000 +0200
@@ -261,8 +261,10 @@
 	int i;
 
 	if ((isa_bridge = pci_find_device(0x1039, 0x0008, isa_bridge)) == NULL) {
-		printk("%s: Can not find ISA bridge\n", net_dev->name);
-		return 0;
+		if ((isa_bridge = pci_find_device(0x1039, 0x0018, isa_bridge)) == NULL) {
+			printk("%s: Can not find ISA bridge\n", net_dev->name);
+			return 0;
+		}
 	}
 	pci_read_config_byte(isa_bridge, 0x48, &reg);
 	pci_write_config_byte(isa_bridge, 0x48, reg | 0x40);

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge
  2004-05-17  6:29   ` Eric BENARD / Free
@ 2004-05-17 10:00     ` Daniele Venzano
  0 siblings, 0 replies; 6+ messages in thread
From: Daniele Venzano @ 2004-05-17 10:00 UTC (permalink / raw)
  To: Eric BENARD / Free; +Cc: Jeff Garzik, linux-kernel, Andrew Morton

On Mon, May 17, 2004 at 08:29:14AM +0200, Eric BENARD / Free wrote:
> This is what I mean in my email. 
> Yes sis900.c should check for both 0x08 and 0x18.
> But, I don't understand why the ID has changed (on the same hardware) between 
> 2.6.3 & 2.6.6 

sis900 didn't change in the past few kernel versions, so there must be
something else somewhere that changed the ID, as Jeff pointed out.

But since that ID is also valid, I'll make a patch for this issue also
(I'm still working on the patch for the other bug that came out in
another thread).

Bye.

-- 
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-05-17 10:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-16 18:04 2.6.6 : bad PCI device ID for SiS ISA bridge => SiS900 eth0: Can not find ISA bridge Eric BENARD / Free
2004-05-16 21:47 ` Jeff Garzik
2004-05-17  3:50   ` David Dillow
2004-05-17  6:48     ` Eric BENARD / Free
2004-05-17  6:29   ` Eric BENARD / Free
2004-05-17 10:00     ` Daniele Venzano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).