Ok, the network is running now after doing some tricks, probably the driver needs some fixes. Here's what I did: On Thu, 28 Nov 2002, Matze Braun wrote: > > > On Thu, 28 Nov 2002, Petr Vandrovec wrote: > > > On 28 Nov 02 at 13:41, Matze Braun wrote: > > > > > > I just bought a new computer with a sis900 ethernet card onboard. I was > > > able to load the sis900 driver after installing kernel 2.4.20-rc3 > > > (1.4.19 didn't work). The driver just outputs the following messages and > > > doesn't work: > > > <6>sis900.c: v1.08.06 9/24/2002 > > > <6>eth0: Unknown PHY transceiver found at address 0. > > > <6>eth0: Realtek RTL8201 PHY transceiver found at address 1. > > > <6>eth0: Unknown PHY transceiver found at address 2. > > > > Did you tried to modify sis900.c (around line 520): > > > > ... > > /* search for total of 32 possible mii phy addresses */ > > - for (phy_addr = 0; phy_addr < 32; phy_addr++) { > > + for (phy_addr = 1; phy_addr < 2; phy_addr++) { > > struct mii_phy * mii_phy = NULL; > > > <6>eth0: Unknown PHY transceiver found at address 3. > > > <6>eth0: Unknown PHY transceiver found at address 4. > > > > and eventually few lines below add: > > > > ... > > if (mii_status == 0xffff || mii_status == 0x0000) > > /* the mii is not accessable, try next one */ > > continue; > > + printk(KERN_DEBUG "Phy %u, status %04X\n", phy_addr, mii_status); > Did that, the unknown Phys had 0x7FFF as status, the Realtek one had > 0x7849 (without network cable on) and 0x786D (with a network cable on) so > I assume this is the correct PHY... > This was the first trick. It seemed my card always had the topmost bit 0, while the driver was comparing with 0xFFFF to test if a PHY is legal... Perhaps this could just be changed? > So I tried your modification above to force it to use the rtl8201 phy. Now > I got these messages after configuring an ip address and doing a test > ping: > > <6>eth0: Media Link On 100mbps half-duplex > <6>NETDEV WATCHDOG: eth0: transmit timed out > <6>eth0: Transmit timeout, status 00000000 00000251 > <6>NETDEV WATCHDOG: eth0: transmit timed out > <6>eth0: Transmit timeout, status 00000000 00000240 > ... > <6>eth0: Transmit timeout, status 00000000 00000260 After fiddeling a bit I realized that I didn't receive any interrupts for my card. So I tried disabling the IO-APIC support in my kernel and it worked... Not sure if this a problem with the network driver or an incompatibility of the sis io-apic... Greetings, Matze - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html