From 6dd1665c70b9833ea34bfa34e3803c77efb7029e Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 11 Jul 2006 14:14:15 +0000 Subject: 2006-07-11 Jerry Needell * ChangeLog, Makefile.am, clock/ckinit.c, include/amba.h, include/bsp.h: Merge SPARC updates from 4.6 branch. Original modifications by Gaisler Enterprises. --- c/src/lib/libbsp/sparc/leon3/ChangeLog | 10 ++++++++++ c/src/lib/libbsp/sparc/leon3/Makefile.am | 12 ++++++++++++ c/src/lib/libbsp/sparc/leon3/clock/ckinit.c | 7 ++++--- c/src/lib/libbsp/sparc/leon3/include/amba.h | 7 +++++-- c/src/lib/libbsp/sparc/leon3/include/bsp.h | 22 +++++++++++++++++++++- 5 files changed, 52 insertions(+), 6 deletions(-) (limited to 'c/src/lib/libbsp') diff --git a/c/src/lib/libbsp/sparc/leon3/ChangeLog b/c/src/lib/libbsp/sparc/leon3/ChangeLog index ff28d1a3bb..3c69a2dc66 100644 --- a/c/src/lib/libbsp/sparc/leon3/ChangeLog +++ b/c/src/lib/libbsp/sparc/leon3/ChangeLog @@ -1,3 +1,13 @@ +2006-07-11 Jerry Needell + + * ChangeLog, Makefile.am, clock/ckinit.c, include/amba.h, + include/bsp.h: Merge SPARC updates from 4.6 branch. Original + modifications by Gaisler Enterprises. + +2006-07-03 Jerry Needell + + * leon_greth/leon_greth.c, include/bsp.h, include/amba.h: ported from 4.6.6 + 2006-06-24 Joel Sherrill * startup/linkcmds: Add .rela.dyn sections. diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am index 1ff6f913dc..2709b34422 100644 --- a/c/src/lib/libbsp/sparc/leon3/Makefile.am +++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am @@ -84,6 +84,14 @@ leon_open_eth_rel_CPPFLAGS += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ leon_open_eth_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) endif +if HAS_NETWORKING +noinst_PROGRAMS += leon_greth.rel +leon_greth_rel_SOURCES = leon_greth/leon_greth.c +leon_greth_rel_CPPFLAGS = $(AM_CPPFLAGS) +leon_greth_rel_CPPFLAGS += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ +leon_greth_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +endif + noinst_LIBRARIES = libbsp.a libbsp_a_SOURCES = libbsp_a_LIBADD = startup.rel amba.rel console.rel clock.rel timer.rel \ @@ -93,6 +101,10 @@ if HAS_NETWORKING libbsp_a_LIBADD += leon_open_eth.rel endif +if HAS_NETWORKING +libbsp_a_LIBADD += leon_greth.rel +endif + libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/cache.rel \ ../../../libcpu/@RTEMS_CPU@/reg_win.rel \ ../../../libcpu/@RTEMS_CPU@/syscall.rel diff --git a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c index 328dc3dba1..454c9112a2 100644 --- a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c +++ b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c @@ -134,10 +134,11 @@ void Install_clock( while (i < amba_conf.apbslv.devnr) { conf = amba_get_confword(amba_conf.apbslv, i, 0); - if ((amba_vendor(conf) == VENDOR_GAISLER) && (amba_device(conf) == GAISLER_GPTIMER)) - { + if ((amba_vendor(conf) == VENDOR_GAISLER) && + (amba_device(conf) == GAISLER_GPTIMER)) { iobar = amba_apb_get_membar(amba_conf.apbslv, i); - LEON3_Timer_Regs = (volatile LEON3_Timer_Regs_Map *) amba_iobar_start(amba_conf.apbmst, iobar); + LEON3_Timer_Regs = (volatile LEON3_Timer_Regs_Map *) + amba_iobar_start(amba_conf.apbmst, iobar); break; } i++; diff --git a/c/src/lib/libbsp/sparc/leon3/include/amba.h b/c/src/lib/libbsp/sparc/leon3/include/amba.h index a9d4bef59a..fb98df9582 100644 --- a/c/src/lib/libbsp/sparc/leon3/include/amba.h +++ b/c/src/lib/libbsp/sparc/leon3/include/amba.h @@ -19,8 +19,8 @@ #define LEON3_AHB_CONF_WORDS 8 #define LEON3_APB_CONF_WORDS 2 -#define LEON3_AHB_MASTERS 8 -#define LEON3_AHB_SLAVES 8 +#define LEON3_AHB_MASTERS 64 +#define LEON3_AHB_SLAVES 64 #define LEON3_APB_SLAVES 16 #define LEON3_APBUARTS 8 @@ -48,6 +48,9 @@ #define GAISLER_PCITRACE 0x15 #define GAISLER_DMACTRL 0x16 #define GAISLER_PIOPORT 0x1A +#define GAISLER_ETHMAC 0x1D + +#define GAISLER_SPACEWIRE 0x01f /* European Space Agency device id's */ #define ESA_LEON2 0x2 diff --git a/c/src/lib/libbsp/sparc/leon3/include/bsp.h b/c/src/lib/libbsp/sparc/leon3/include/bsp.h index 2f5481a4dc..e443859ec9 100644 --- a/c/src/lib/libbsp/sparc/leon3/include/bsp.h +++ b/c/src/lib/libbsp/sparc/leon3/include/bsp.h @@ -42,6 +42,11 @@ extern "C" { #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 #define CONFIGURE_INTERRUPT_STACK_MEMORY (16 * 1024) +/* add a entry to the device driver table so that I can call rtems_io_register_driver */ +#define CONFIGURE_NUMBER_OF_DRIVERS_LEON3 \ + (((sizeof(Device_drivers) / sizeof(rtems_driver_address_table))) + 1) +#define CONFIGURE_MAXIMUM_DRIVERS CONFIGURE_NUMBER_OF_DRIVERS_LEON3 + /* * Network driver configuration */ @@ -55,9 +60,22 @@ extern int rtems_smc91111_driver_attach_leon3( struct rtems_bsdnet_ifconfig *config, int attach ); -#define RTEMS_BSP_NETWORK_DRIVER_NAME "open_eth1" +extern int rtems_leon_greth_driver_attach( + struct rtems_bsdnet_ifconfig *config, + int attach +); + +#define RTEMS_BSP_NETWORK_DRIVER_NAME_OPENETH "open_eth1" #define RTEMS_BSP_NETWORK_DRIVER_ATTACH_OPENETH rtems_leon_open_eth_driver_attach +#define RTEMS_BSP_NETWORK_DRIVER_NAME_SMC91111 "smc_eth1" #define RTEMS_BSP_NETWORK_DRIVER_ATTACH_SMC91111 rtems_smc91111_driver_attach_leon3 +#define RTEMS_BSP_NETWORK_DRIVER_NAME_GRETH "gr_eth1" +#define RTEMS_BSP_NETWORK_DRIVER_ATTACH_GRETH rtems_leon_greth_driver_attach + +#ifndef RTEMS_BSP_NETWORK_DRIVER_NAME +#define RTEMS_BSP_NETWORK_DRIVER_NAME RTEMS_BSP_NETWORK_DRIVER_NAME_GRETH +#define RTEMS_BSP_NETWORK_DRIVER_ATTACH RTEMS_BSP_NETWORK_DRIVER_ATTACH_GRETH +#endif /* @@ -125,3 +143,5 @@ extern rtems_cpu_table Cpu_table; /* owned by BSP */ #endif #endif + + -- cgit v1.2.3