Re: sis900: Non supported PHY on my onboard card? boundary=

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux