forked from Imagelibrary/rtems
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.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
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.
|
||||
|
||||
2003-08-20 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* include/bsp.h: Correct copyright statements.
|
||||
|
||||
@@ -6,7 +6,8 @@ ACLOCAL_AMFLAGS = -I ../../../../aclocal
|
||||
|
||||
# wrapup is the one that actually builds and installs the library
|
||||
# from the individual .rel files built in other directories
|
||||
SUBDIRS = . include start startup gnatsupp console clock timer wrapup tools
|
||||
SUBDIRS = . include start startup gnatsupp console clock timer \
|
||||
leon_open_eth wrapup tools
|
||||
|
||||
include $(top_srcdir)/../../bsp.am
|
||||
|
||||
|
||||
@@ -14,6 +14,10 @@ RTEMS_BSP_CONFIGURE
|
||||
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
RTEMS_CHECK_NETWORKING
|
||||
|
||||
AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
|
||||
|
||||
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
|
||||
|
||||
## bsp-specific options
|
||||
@@ -36,6 +40,7 @@ RTEMS_BSPOPTS_HELP([SIMSPARC_FAST_IDLE],
|
||||
AC_CONFIG_FILES([Makefile
|
||||
clock/Makefile
|
||||
console/Makefile
|
||||
leon_open_eth/Makefile
|
||||
gnatsupp/Makefile
|
||||
include/Makefile
|
||||
start/Makefile
|
||||
|
||||
@@ -334,8 +334,8 @@ rtems_device_driver console_initialize(
|
||||
* Initialize Hardware
|
||||
*/
|
||||
|
||||
LEON_REG.UART_Control_1 = LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE;
|
||||
LEON_REG.UART_Control_2 = LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE |
|
||||
LEON_REG.UART_Control_1 |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE;
|
||||
LEON_REG.UART_Control_2 |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE |
|
||||
LEON_REG_UART_CTRL_RI; /* rx irq default enable for remote debugger */
|
||||
LEON_REG.UART_Status_1 = 0;
|
||||
LEON_REG.UART_Status_2 = 0;
|
||||
|
||||
@@ -44,6 +44,15 @@ extern "C" {
|
||||
#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2
|
||||
#define CONFIGURE_INTERRUPT_STACK_MEMORY (16 * 1024)
|
||||
|
||||
/*
|
||||
* Network driver configuration
|
||||
*/
|
||||
|
||||
struct rtems_bsdnet_ifconfig;
|
||||
extern int rtems_leon_open_eth_driver_attach (struct rtems_bsdnet_ifconfig *config);
|
||||
#define RTEMS_BSP_NETWORK_DRIVER_NAME "open_eth1"
|
||||
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_leon_open_eth_driver_attach
|
||||
|
||||
|
||||
/*
|
||||
* Define the time limits for RTEMS Test Suite test durations.
|
||||
|
||||
2
c/src/lib/libbsp/sparc/leon/leon_open_eth/.cvsignore
Normal file
2
c/src/lib/libbsp/sparc/leon/leon_open_eth/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
35
c/src/lib/libbsp/sparc/leon/leon_open_eth/Makefile.am
Normal file
35
c/src/lib/libbsp/sparc/leon/leon_open_eth/Makefile.am
Normal file
@@ -0,0 +1,35 @@
|
||||
##
|
||||
## Makefile.am,v 1.5 2002/12/14 08:17:45 ralf Exp
|
||||
##
|
||||
|
||||
|
||||
PGM = $(ARCH)/leon_open_eth.rel
|
||||
|
||||
C_FILES = leon_open_eth.c
|
||||
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
OBJS = $(C_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../../../automake/lib.am
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
AM_CPPFLAGS += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
|
||||
|
||||
$(PGM): $(OBJS)
|
||||
$(make-rel)
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
|
||||
if HAS_NETWORKING
|
||||
all-local: $(ARCH) $(OBJS) $(PGM)
|
||||
endif
|
||||
|
||||
.PRECIOUS: $(PGM)
|
||||
|
||||
EXTRA_DIST = leon_open_eth.c
|
||||
|
||||
include $(top_srcdir)/../../../../../../automake/local.am
|
||||
48
c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c
Normal file
48
c/src/lib/libbsp/sparc/leon/leon_open_eth/leon_open_eth.c
Normal file
@@ -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;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ rtems_isr_entry set_vector( /* returns old vector */
|
||||
void _CPU_Thread_Idle_body( void )
|
||||
{
|
||||
while (1) {
|
||||
LEON_REG.Power_Down = 0; /* value is irrelevant */
|
||||
LEON_REG.Power_Down = LEON_REG.Power_Down; /* make sure on load follows store to power-down reg */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
## $Id$
|
||||
##
|
||||
|
||||
# We only build the networking device driver if HAS_NETWORKING was defined
|
||||
if HAS_NETWORKING
|
||||
NETWORKING_DRIVER = leon_open_eth
|
||||
endif
|
||||
|
||||
BSP_PIECES = startup console clock timer gnatsupp $(NETWORK)
|
||||
# pieces to pick up out of libcpu/sparc
|
||||
CPU_PIECES = cache reg_win syscall
|
||||
|
||||
Reference in New Issue
Block a user