From owner-freebsd-bugs Tue Oct 3 13:56:18 2000 Delivered-To: freebsd-bugs@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 618) id 9E8CC37B503; Tue, 3 Oct 2000 13:56:15 -0700 (PDT) Subject: Re: kern/21623: Chipset SiS630E / NIC SiS 900 In-Reply-To: <200010031916.MAA21392@freefall.freebsd.org> from "johan@FreeBSD.org" at "Oct 3, 2000 12:16:04 pm" To: roland@serv.ch Date: Tue, 3 Oct 2000 13:56:15 -0700 (PDT) Cc: freebsd-bugs@freebsd.org X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20001003205615.9E8CC37B503@hub.freebsd.org> From: wpaul@FreeBSD.ORG (Bill Paul) Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > 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