summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-26 15:19:53 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-01 09:15:29 +0200
commitd3a6abb1a5c09bee8a1410752becf128fb341298 (patch)
tree997699a23ad13a4601b4377d1be3f2bb2d71ac97
parentif_dwc: Workaround for missing FDT support (diff)
downloadrtems-libbsd-d3a6abb1a5c09bee8a1410752becf128fb341298.tar.bz2
if_dwc: Use rtems_bsd_get_mac_address()
-rw-r--r--freebsd/sys/dev/dwc/if_dwc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/freebsd/sys/dev/dwc/if_dwc.c b/freebsd/sys/dev/dwc/if_dwc.c
index 4aaad5dd..15d4d594 100644
--- a/freebsd/sys/dev/dwc/if_dwc.c
+++ b/freebsd/sys/dev/dwc/if_dwc.c
@@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
#include <rtems/bsd/local/miibus_if.h>
#ifdef __rtems__
#pragma GCC diagnostic ignored "-Wpointer-sign"
+#include <rtems/bsd/bsd.h>
#endif /* __rtems__ */
#define READ4(_sc, _reg) \
@@ -1061,7 +1062,9 @@ out:
static int
dwc_get_hwaddr(struct dwc_softc *sc, uint8_t *hwaddr)
{
+#ifndef __rtems__
int rnd;
+#endif /* __rtems__ */
int lo;
int hi;
@@ -1084,6 +1087,7 @@ dwc_get_hwaddr(struct dwc_softc *sc, uint8_t *hwaddr)
hwaddr[4] = (hi >> 0) & 0xff;
hwaddr[5] = (hi >> 8) & 0xff;
} else {
+#ifndef __rtems__
rnd = arc4random() & 0x00ffffff;
hwaddr[0] = 'b';
hwaddr[1] = 's';
@@ -1091,6 +1095,10 @@ dwc_get_hwaddr(struct dwc_softc *sc, uint8_t *hwaddr)
hwaddr[3] = rnd >> 16;
hwaddr[4] = rnd >> 8;
hwaddr[5] = rnd >> 0;
+#else /* __rtems__ */
+ rtems_bsd_get_mac_address(device_get_name(sc->dev),
+ device_get_unit(sc->dev), hwaddr);
+#endif /* __rtems__ */
}
return (0);