summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Martelletto <pedro@cvs.openbsd.org>2006-03-21 11:19:23 +0000
committerPedro Martelletto <pedro@cvs.openbsd.org>2006-03-21 11:19:23 +0000
commita15321bfbad253eb0449d4ca5850721a1278f64b (patch)
tree074f2828fc604a6630433bf6b1b32bde40dda9a3
parentcd10ef1616a37b73e5c4919c6fc373a59c6a199b (diff)
Make ural(4) read and show real MAC/BBP rev instead of hardcoded RT2570
"Go ahead" damien@ via jsg@
-rw-r--r--sys/dev/usb/if_ral.c12
-rw-r--r--sys/dev/usb/if_ralreg.h3
-rw-r--r--sys/dev/usb/if_ralvar.h3
3 files changed, 12 insertions, 6 deletions
diff --git a/sys/dev/usb/if_ral.c b/sys/dev/usb/if_ral.c
index 9eabe32b4e5..6a9311e000b 100644
--- a/sys/dev/usb/if_ral.c
+++ b/sys/dev/usb/if_ral.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ral.c,v 1.65 2006/02/19 08:44:17 damien Exp $ */
+/* $OpenBSD: if_ral.c,v 1.66 2006/03/21 11:19:22 pedro Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -430,9 +430,9 @@ USB_ATTACH(ural)
/* retrieve MAC address and various other things from EEPROM */
ural_read_eeprom(sc);
- printf("%s: MAC/BBP RT2570 (rev 0x%02x), RF %s, address %s\n",
- USBDEVNAME(sc->sc_dev), sc->asic_rev, ural_get_rf(sc->rf_rev),
- ether_sprintf(ic->ic_myaddr));
+ printf("%s: MAC/BBP RT%02x (rev 0x%02x), RF %s, address %s\n",
+ USBDEVNAME(sc->sc_dev), sc->macbbp_rev, sc->asic_rev,
+ ural_get_rf(sc->rf_rev), ether_sprintf(ic->ic_myaddr));
ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */
ic->ic_opmode = IEEE80211_M_STA; /* default to BSS mode */
@@ -1997,6 +1997,10 @@ ural_read_eeprom(struct ural_softc *sc)
struct ieee80211com *ic = &sc->sc_ic;
uint16_t val;
+ /* retrieve MAC/BBP type */
+ ural_eeprom_read(sc, RAL_EEPROM_MACBBP, &val, 2);
+ sc->macbbp_rev = letoh16(val);
+
ural_eeprom_read(sc, RAL_EEPROM_CONFIG0, &val, 2);
val = letoh16(val);
sc->rf_rev = (val >> 11) & 0x7;
diff --git a/sys/dev/usb/if_ralreg.h b/sys/dev/usb/if_ralreg.h
index 871c1e5acb0..6ae5fbc3d4b 100644
--- a/sys/dev/usb/if_ralreg.h
+++ b/sys/dev/usb/if_ralreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ralreg.h,v 1.8 2006/01/14 12:40:39 damien Exp $ */
+/* $OpenBSD: if_ralreg.h,v 1.9 2006/03/21 11:19:22 pedro Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -200,6 +200,7 @@ struct ural_rx_desc {
#define RAL_RF3 1
#define RAL_RF4 3
+#define RAL_EEPROM_MACBBP 0x0000
#define RAL_EEPROM_ADDRESS 0x0004
#define RAL_EEPROM_TXPOWER 0x003c
#define RAL_EEPROM_CONFIG0 0x0016
diff --git a/sys/dev/usb/if_ralvar.h b/sys/dev/usb/if_ralvar.h
index b3f5ba8b0de..ae72dd050dd 100644
--- a/sys/dev/usb/if_ralvar.h
+++ b/sys/dev/usb/if_ralvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ralvar.h,v 1.4 2006/01/14 12:40:39 damien Exp $ */
+/* $OpenBSD: if_ralvar.h,v 1.5 2006/03/21 11:19:22 pedro Exp $ */
/*-
* Copyright (c) 2005
@@ -90,6 +90,7 @@ struct ural_softc {
int sc_tx_no;
uint32_t asic_rev;
+ uint16_t macbbp_rev;
uint8_t rf_rev;
usbd_xfer_handle amrr_xfer;