sio(4) driver

Thomas Moestl t.moestl at tu-bs.de
Thu Aug 28 15:05:56 PDT 2003


On Thu, 2003/08/28 at 13:42:12 +0300, Maxim Mazurok wrote:
> On Thu, Aug 28, 2003 at 01:00:32PM +0300, Maxim Mazurok wrote:
> 
> >ohh.
> >rl(4) driver no work at 5.1-CURRENT from 
> >*default release=cvs tag=. date=2003.08.22.00.00.00
> >
> >my dmesg in attachemnt.
> >all segments inserted to true ethernet cards, but in kernel indexes of
> >ethernet cards is broken?
> >
> >P.S. sorry for my bad english
> 
> ops. i wrong.
> after recompile kernel width 
> options         OFW_NEWPCI
> my ethernet cards change numbers. rl0 ->rl3, rl1 -> rl0, rl2 -> rl1, rl3 ->
> rl2.
> you swapped scan of two bloks of pci slot.
> it's good.
> but i have one small problem :)
> rl cards in my system see any remote arp's only if i run 'tcpdump -n -i rl1'
> can you fix this?

Hmmm, actually, are you sure that you have applied the patch to
if_rl.c I sent previously? I just noticed that it wouldn't even
compile due to a change that I forgot (sorry about that); updated
version attached.

	- Thomas

-- 
Thomas Moestl <t.moestl at tu-bs.de>	http://www.tu-bs.de/~y0015675/
              <tmm at FreeBSD.org>		http://people.FreeBSD.org/~tmm/
PGP fingerprint: 1C97 A604 2BD0 E492 51D0  9C0F 1FE6 4F1D 419C 776C
-------------- next part --------------
Index: if_rl.c
===================================================================
RCS file: /vol/ncvs/src/sys/pci/if_rl.c,v
retrieving revision 1.113
diff -u -r1.113 if_rl.c
--- if_rl.c	22 Aug 2003 07:13:21 -0000	1.113
+++ if_rl.c	28 Aug 2003 21:34:37 -0000
@@ -2658,6 +2658,7 @@
 	struct ifnet		*ifp = &sc->arpcom.ac_if;
 	struct mii_data		*mii;
 	u_int32_t		rxcfg = 0;
+	int			i;
 
 	RL_LOCK(sc);
 	mii = device_get_softc(sc->rl_miibus);
@@ -2673,8 +2674,9 @@
 	 * register write enable" mode to modify the ID registers.
 	 */
 	CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_WRITECFG);
-	CSR_WRITE_4(sc, RL_IDR0, *(u_int32_t *)(&sc->arpcom.ac_enaddr[0]));
-	CSR_WRITE_4(sc, RL_IDR4, *(u_int32_t *)(&sc->arpcom.ac_enaddr[4]));
+	/* Init our MAC address */
+	for (i = 0; i < ETHER_ADDR_LEN; i++)
+		CSR_WRITE_1(sc, RL_IDR0 + i, sc->arpcom.ac_enaddr[i]);
 	CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF);
 
 	/*


More information about the freebsd-sparc64 mailing list