diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-05 13:57:11 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-06 09:55:31 +0100 |
commit | c30fa94277cfdf2c8a7e0a6206d31a506453a491 (patch) | |
tree | fb60f2031c114a398485344dca016ff26af4612a /freebsd/sys/dev/dwc | |
parent | tests: Fix configuration dependencies (diff) | |
download | rtems-libbsd-c30fa94277cfdf2c8a7e0a6206d31a506453a491.tar.bz2 |
Add device tree support for Altera/Intel Cyclone V
Close #3290.
Diffstat (limited to 'freebsd/sys/dev/dwc')
-rw-r--r-- | freebsd/sys/dev/dwc/if_dwc.c | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/freebsd/sys/dev/dwc/if_dwc.c b/freebsd/sys/dev/dwc/if_dwc.c index 507547a9..badbd807 100644 --- a/freebsd/sys/dev/dwc/if_dwc.c +++ b/freebsd/sys/dev/dwc/if_dwc.c @@ -69,12 +69,8 @@ __FBSDID("$FreeBSD$"); #include <dev/dwc/if_dwcvar.h> #include <dev/mii/mii.h> #include <dev/mii/miivar.h> -#ifndef __rtems__ #include <dev/ofw/ofw_bus.h> #include <dev/ofw/ofw_bus_subr.h> -#else /* __rtems__ */ -#include <rtems/bsd/bsd.h> -#endif /* __rtems__ */ #ifdef EXT_RESOURCES #include <dev/extres/clk/clk.h> @@ -1159,10 +1155,14 @@ out: static int dwc_get_hwaddr(struct dwc_softc *sc, uint8_t *hwaddr) { -#ifndef __rtems__ uint32_t hi, lo, rnd; -#else /* __rtems__ */ - uint32_t hi, lo; +#ifdef __rtems__ + int i; + + i = OF_getprop(ofw_bus_get_node(sc->dev), "local-mac-address", + hwaddr, 6); + if (i == 6) + return (0); #endif /* __rtems__ */ /* @@ -1184,7 +1184,6 @@ 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'; @@ -1192,10 +1191,6 @@ 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); @@ -1293,13 +1288,11 @@ static int dwc_probe(device_t dev) { -#ifndef __rtems__ if (!ofw_bus_status_okay(dev)) return (ENXIO); if (!ofw_bus_is_compatible(dev, "snps,dwmac")) return (ENXIO); -#endif /* __rtems__ */ device_set_desc(dev, "Gigabit Ethernet Controller"); return (BUS_PROBE_DEFAULT); @@ -1568,11 +1561,7 @@ driver_t dwc_driver = { static devclass_t dwc_devclass; -#ifndef __rtems__ DRIVER_MODULE(dwc, simplebus, dwc_driver, dwc_devclass, 0, 0); -#else /* __rtems__ */ -DRIVER_MODULE(dwc, nexus, dwc_driver, dwc_devclass, 0, 0); -#endif /* __rtems__ */ DRIVER_MODULE(miibus, dwc, miibus_driver, miibus_devclass, 0, 0); MODULE_DEPEND(dwc, ether, 1, 1, 1); |