diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-09-03 13:27:51 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2003-09-03 13:27:51 +0000 |
commit | ff5720e5a0b1cf1dfd671d561e2868691ad80255 (patch) | |
tree | 1ba2ff7aab17ab0173e24447a4e0166c7fdca4bd /c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c | |
parent | 2003-09-02 Jiri Gaisler <jiri@gaisler.com> (diff) | |
download | rtems-ff5720e5a0b1cf1dfd671d561e2868691ad80255.tar.bz2 |
2003-09-03 Jiri Gaisler <jiri@gaisler.com>
PR 477/networking
* Makefile.am, configure.ac, console/console.c, include/bsp.h,
startup/setvec.c, wrapup/Makefile.am: Add network support and enable
custom power down.
* leon_open_eth/.cvsignore, leon_open_eth/Makefile.am,
leon_open_eth/leon_open_eth.c: New files.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c b/c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c new file mode 100644 index 0000000000..8ec61779f5 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c @@ -0,0 +1,48 @@ +/* + * LEON2 Opencores Ethernet MAC Configuration Information + * + */ + + +#include <bsp.h> +#include <libchip/open_eth.h> +#if (OPEN_ETH_DEBUG & OPEN_ETH_DEBUG_PRINT_REGISTERS) +#include <stdio.h> +#endif + +/* + * Default sizes of transmit and receive descriptor areas + */ +#define RDA_COUNT 16 +#define TDA_COUNT 16 + +/* + * Default location of device registers + */ +#define OPEN_ETH_BASE_ADDRESS 0xb0000000 + +/* + * Default interrupt vector + */ +#define OPEN_ETH_VECTOR 0x1C + +open_eth_configuration_t leon_open_eth_configuration = { + OPEN_ETH_BASE_ADDRESS, /* base address */ + OPEN_ETH_VECTOR, /* vector number */ + TDA_COUNT, /* number of transmit descriptors */ + RDA_COUNT /* number of receive descriptors */ +}; + +int rtems_leon_open_eth_driver_attach(struct rtems_bsdnet_ifconfig *config) +{ + + *(volatile int *) OPEN_ETH_BASE_ADDRESS = 0; + *(volatile int *) OPEN_ETH_BASE_ADDRESS = 0x800; + *(volatile int *) OPEN_ETH_BASE_ADDRESS = 0; + if (rtems_open_eth_driver_attach( config, &leon_open_eth_configuration )) { + LEON_REG.Interrupt_Clear = (1 << (OPEN_ETH_VECTOR - 0x10)); + LEON_REG.Interrupt_Mask |= (1 << (OPEN_ETH_VECTOR - 0x10)); + return 1; + } + return 0; +} |