summaryrefslogtreecommitdiffstats
path: root/bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c')
-rw-r--r--bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c129
1 files changed, 0 insertions, 129 deletions
diff --git a/bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c b/bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c
deleted file mode 100644
index 9ed814eb28..0000000000
--- a/bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Author: T. Straumann <strauman@slac.stanford.edu>; see ../../LICENSE */
-#include "rtemscompat_defs.h"
-#include "../porting/rtemscompat.h"
-#include "gtethreg.h"
-
-#include <bsp/early_enet_link_status.h>
-#include <bsp/if_gfe_pub.h>
-#include <bsp/irq.h>
-
-/* from if_gfe.c */
-#define GE_READ(sc, reg) \
- bus_space_read_4((sc)->sc_gt_memt, (sc)->sc_memh, ETH__ ## reg)
-#define GE_WRITE(sc, reg, v) \
- bus_space_write_4((sc)->sc_gt_memt, (sc)->sc_memh, ETH__ ## reg, (v))
-
-#define GT_READ(sc, reg) \
- bus_space_read_4((sc)->sc_gt_memt, (sc)->sc_gt_memh, reg)
-#define GT_WRITE(sc, reg, v) \
- bus_space_write_4((sc)->sc_gt_memt, (sc)->sc_gt_memh, reg, (v))
-
-#include "../porting/if_xxx_rtems.c"
-
-#include <bsp.h>
-#include <libcpu/io.h>
-
-int
-NET_EMBEMB(rtems_,NETDRIVER_PREFIX,_setup)(
- int unit,
- char *ea,
- uint32_t base_addr)
-{
-struct NET_SOFTC *sc;
-
- if ( !ea ) {
- fprintf(stderr,"Station address argument missing\n");
- return 0;
- }
-
- if ( !(sc=net_drv_check_unit(unit)) ) {
- fprintf(stderr,"Bad unit number -- (not enought driver slots?)\n");
- return 0;
- }
-
- unit--;
-
-#ifdef DEBUG_MODULAR
- if ( !METHODSPTR ) {
- fprintf(stderr,"Methods not set -- module not loaded?\n");
- return 0;
- }
-#endif
-
- if ( !base_addr ) {
-#ifdef BSP_MV64x60_BASE
- base_addr = BSP_MV64x60_BASE;
-#else
- fprintf(stderr,"Missing GT64260 base address\n");
- return 0;
-#endif
- }
- sc->sc_gt_memh = base_addr;
- /* must set this as well to indicate that the device is set up */
- sc->NET_SOFTC_BHANDLE_FIELD = base_addr + 0x2400 + (unit<<10);
- sc->sc_macno = unit;
- memcpy( sc->arpcom.ac_enaddr, ea, ETHER_ADDR_LEN);
-
- if ( 0 == METHODSPTR->n_probe(&THEDEVS[unit]) ) {
- printf(NETDRIVER": Unit %i set up\n", unit + 1);
- sc->irq_no = BSP_IRQ_ETH0 + unit;
- return 1;
- }
- return 0;
-}
-
-static int
-gfe_early_init(int idx)
-{
-struct gfe_softc *sc;
-uint32_t d;
-
- if ( idx < 0 || idx >= NETDRIVER_SLOTS )
- return -1;
-
- sc = device_get_softc(&the_gfe_devs[idx]);
- d = bus_space_read_4(sc->sc_gt_memt, sc->sc_gt_memh, ETH_EPAR);
-
- sc->sc_phyaddr = ETH_EPAR_PhyAD_GET(d, sc->sc_macno);
- sc->sc_dev.dv_xname = NETDRIVER;
- return 0;
-}
-
-static int
-gfe_early_read_phy(int idx, unsigned reg)
-{
-uint32_t rval;
-struct gfe_softc *sc;
-
- if ( idx < 0 || idx >= NETDRIVER_SLOTS )
- return -1;
-
- sc = device_get_softc(&the_gfe_devs[idx]);
-
- if ( gfe_mii_read( 0, sc, reg, &rval) )
- return -1;
- return rval & 0xffff;
-}
-
-
-static int
-gfe_early_write_phy(int idx, unsigned reg, unsigned val)
-{
-struct gfe_softc *sc;
-
- if ( idx < 0 || idx >= NETDRIVER_SLOTS )
- return -1;
-
- sc = device_get_softc(&the_gfe_devs[idx]);
-
- return gfe_mii_write( 0, sc, reg, val);
-}
-
-rtems_bsdnet_early_link_check_ops
-rtems_gfe_early_link_check_ops = {
- init: gfe_early_init,
- read_phy: gfe_early_read_phy,
- write_phy: gfe_early_write_phy,
- name: NETDRIVER,
- num_slots: NETDRIVER_SLOTS
-};