Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Oct 2000 13:56:15 -0700 (PDT)
From:      wpaul@FreeBSD.ORG (Bill Paul)
To:        roland@serv.ch
Cc:        freebsd-bugs@freebsd.org
Subject:   Re: kern/21623: Chipset SiS630E / NIC SiS 900
Message-ID:  <20001003205615.9E8CC37B503@hub.freebsd.org>
In-Reply-To: <200010031916.MAA21392@freefall.freebsd.org> from "johan@FreeBSD.org" at "Oct 3, 2000 12:16:04 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> Synopsis: Chipset SiS630E / NIC SiS 900

Ok. According to the SiS630 datasheet, the embedded SiS 900 controller
in this chipset differs slightly from the standalone chip in that the
EEPROM control register doubles as a HomePNA PHY control register.
You have to clear bit 7 in the EEPROM control register in order to
select the EEPROM control function. I think this may be the problem,
but I can't be certain since I don't have a board with that chipset
that I can test with. I'm including a patch for you to try with the
if_sis driver. If this works, please let me know so I can merge it
into the tree.

-Bill


*** if_sis.c.orig	Tue Aug 22 16:26:51 2000
--- if_sis.c	Tue Oct  3 13:43:48 2000
***************
*** 348,353 ****
--- 348,363 ----
  	int			i;
  	u_int16_t		word = 0, *ptr;
  
+ 	/*
+ 	 * The embedded SiS 900 ethernet in the SiS 630E
+ 	 * chipset (ab)uses the EEPROM control register as a
+ 	 * HomePNA PHY control register, so we need to make sure
+ 	 * to select the EEPROM control function here. For a
+ 	 * regular SiS 900, this has no effect.
+ 	 */
+ 	if (sc->sis_type == SIS_TYPE_900)
+ 		SIS_CLRBIT(sc, SIS_EECTL, SIS_EECTL_EESEL);
+ 
  	for (i = 0; i < cnt; i++) {
  		sis_eeprom_getword(sc, off + i, &word);
  		ptr = (u_int16_t *)(dest + (i * 2));


*** if_sisreg.h.orig Tue Aug 22 16:26:51 2000
--- if_sisreg.h	Tue Oct  3 13:36:01 2000
***************
*** 112,117 ****
--- 112,118 ----
  #define SIS_EECTL_DOUT		0x00000002
  #define SIS_EECTL_CLK		0x00000004
  #define SIS_EECTL_CSEL		0x00000008
+ #define SIS_EECTL_EESEL		0x00000080
  
  #define SIS_EECMD_WRITE		0x140
  #define SIS_EECMD_READ		0x180


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001003205615.9E8CC37B503>