Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Mar 2003 12:04:40 +0100
From:      Fabien THOMAS <fabien.thomas@netasq.com>
To:        freebsd-net@FreeBSD.ORG
Subject:   rl driver mac address probem
Message-ID:  <160266830406.20030306120440@netasq.com>

next in thread | raw e-mail | index | archive | help
        Hi,

I've a problem for setting the mac address for the rl driver
(ifconfig rl0 ether xx:xx:xx:xx:xx:xx).

The chip datasheet said that address can be read as a single byte but
it must be written 4 bytes at a time.

The patch correct the problem and have been grabbed from the linux
driver (but have a read overflow of 2 bytes).

is it possible that someone can review & commit the correction

fabien


--- if_rl.c.orig        Thu Mar  6 11:32:58 2003
+++ if_rl.c     Thu Mar  6 11:33:37 2003
@@ -1474,7 +1474,7 @@
        struct rl_softc         *sc = xsc;
        struct ifnet            *ifp = &sc->arpcom.ac_if;
        struct mii_data         *mii;
-       int                     s, i;
+       int                     s;
        u_int32_t               rxcfg = 0;
 
        s = splimp();
@@ -1487,9 +1487,9 @@
        rl_stop(sc);
 
        /* 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_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 the RX buffer pointer register. */
        CSR_WRITE_4(sc, RL_RXADDR, vtophys(sc->rl_cdata.rl_rx_buf));


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




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