summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/rtl22xx
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-23 09:53:31 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-23 15:18:44 +0200
commit031df3914990db0336a0d386fb53558b05de467e (patch)
tree4661e22f0cdb3f9d06879f0194b77c75f62bac79 /c/src/lib/libbsp/arm/rtl22xx
parentbsps: Move interrupt controller support to bsps (diff)
downloadrtems-031df3914990db0336a0d386fb53558b05de467e.tar.bz2
bsps: Move legacy network drivers to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx')
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/network/network.c126
2 files changed, 1 insertions, 127 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
index 94fadf0507..5227f3b291 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
@@ -42,7 +42,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/rtl22xx/irq/irq.c
librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/cache/nocache.c
if HAS_NETWORKING
-librtemsbsp_a_SOURCES += network/network.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/rtl22xx/net/network.c
endif
include $(top_srcdir)/../../../../automake/local.am
diff --git a/c/src/lib/libbsp/arm/rtl22xx/network/network.c b/c/src/lib/libbsp/arm/rtl22xx/network/network.c
deleted file mode 100644
index b269a6ddfc..0000000000
--- a/c/src/lib/libbsp/arm/rtl22xx/network/network.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*Note: this file is copy from 7312 BSP, and untested yet*/
-
-#define __INSIDE_RTEMS_BSD_TCPIP_STACK__
-
-#include <rtems.h>
-#include <sys/param.h>
-#include <sys/mbuf.h>
-#include <bsp/irq.h>
-#include <libchip/cs8900.h>
-#include <assert.h>
-
-#define CS8900_BASE 0x20000300
-unsigned int bsp_cs8900_io_base = 0;
-unsigned int bsp_cs8900_memory_base = 0;
-static void cs8900_isr(void *);
-
-char g_enetbuf[1520];
-
-static void cs8900_isr(void *arg)
-{
- cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, arg);
-}
-
-/* cs8900_io_set_reg - set one of the I/O addressed registers */
-void cs8900_io_set_reg (cs8900_device *cs, unsigned short reg, unsigned short data)
-{
- /* works the same for all values of dev */
-/*
- printf("cs8900_io_set_reg: reg: %#6x, val %#6x\n",
- CS8900_BASE + reg,
- data);
-*/
- *(unsigned short *)(CS8900_BASE + reg) = data;
-}
-
-/* cs8900_io_get_reg - reads one of the I/O addressed registers */
-unsigned short cs8900_io_get_reg (cs8900_device *cs, unsigned short reg)
-{
- unsigned short val;
- /* works the same for all values of dev */
- val = *(unsigned short *)(CS8900_BASE + reg);
-/*
- printf("cs8900_io_get_reg: reg: %#6x, val %#6x\n", reg, val);
-*/
- return val;
-}
-
-/* cs8900_mem_set_reg - sets one of the registers mapped through
- * PacketPage
- */
-void cs8900_mem_set_reg (cs8900_device *cs, unsigned long reg, unsigned short data)
-{
- /* works the same for all values of dev */
- cs8900_io_set_reg(cs, CS8900_IO_PACKET_PAGE_PTR, reg);
- cs8900_io_set_reg(cs, CS8900_IO_PP_DATA_PORT0, data);
-}
-
-/* cs8900_mem_get_reg - reads one of the registers mapped through
- * PacketPage
- */
-unsigned short cs8900_mem_get_reg (cs8900_device *cs, unsigned long reg)
-{
- /* works the same for all values of dev */
- cs8900_io_set_reg(cs, CS8900_IO_PACKET_PAGE_PTR, reg);
- return cs8900_io_get_reg(cs, CS8900_IO_PP_DATA_PORT0);
-}
-
-void cs8900_attach_interrupt (cs8900_device *cs)
-{
- rtems_status_code status = RTEMS_SUCCESSFUL;
- status = rtems_interrupt_handler_install(
- LPC22xx_INTERRUPT_EINT2,
- "Network",
- RTEMS_INTERRUPT_UNIQUE,
- cs8900_isr,
- cs
- );
- assert(status == RTEMS_SUCCESSFUL);
-}
-
-void cs8900_detach_interrupt (cs8900_device *cs)
-{
- rtems_status_code status = RTEMS_SUCCESSFUL;
- status = rtems_interrupt_handler_remove(
- LPC22xx_INTERRUPT_EINT2,
- cs8900_isr,
- cs
- );
- assert(status == RTEMS_SUCCESSFUL);
-}
-
-unsigned short cs8900_get_data_block (cs8900_device *cs, unsigned char *data)
-{
- int len;
- int i;
-
- len = cs8900_mem_get_reg(cs, CS8900_PP_RxLength);
-
- for (i = 0; i < ((len + 1) / 2); i++) {
- ((short *)data)[i] = cs8900_io_get_reg(cs,
- CS8900_IO_RX_TX_DATA_PORT0);
- }
- return len;
-}
-
-void cs8900_tx_load (cs8900_device *cs, struct mbuf *m)
-{
- int len;
- unsigned short *data;
- int i;
-
- len = 0;
-
- do {
- memcpy(&g_enetbuf[len], mtod(m, const void *), m->m_len);
- len += m->m_len;
- m = m->m_next;
- } while (m != 0);
-
- data = (unsigned short *) &g_enetbuf[0];
- for (i = 0; i < ((len + 1) / 2); i++) {
- cs8900_io_set_reg(cs,
- CS8900_IO_RX_TX_DATA_PORT0,
- data[i]);
- }
-}