summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2006-07-11 14:14:15 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2006-07-11 14:14:15 +0000
commit6dd1665c70b9833ea34bfa34e3803c77efb7029e (patch)
treea9c08d9db4503b4fe1b4887854a2fb20ea36bbdf /c/src/lib/libbsp
parentUse newlib-1.14.0-rtems-20060707.diff (diff)
downloadrtems-6dd1665c70b9833ea34bfa34e3803c77efb7029e.tar.bz2
2006-07-11 Jerry Needell <jerry.needell@unh.edu>
* ChangeLog, Makefile.am, clock/ckinit.c, include/amba.h, include/bsp.h: Merge SPARC updates from 4.6 branch. Original modifications by Gaisler Enterprises.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/ChangeLog10
-rw-r--r--c/src/lib/libbsp/sparc/leon3/Makefile.am12
-rw-r--r--c/src/lib/libbsp/sparc/leon3/clock/ckinit.c7
-rw-r--r--c/src/lib/libbsp/sparc/leon3/include/amba.h7
-rw-r--r--c/src/lib/libbsp/sparc/leon3/include/bsp.h22
5 files changed, 52 insertions, 6 deletions
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 <jerry.needell@unh.edu>
+
+ * 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 <jerry.needell@unh.edu>
+
+ * leon_greth/leon_greth.c, include/bsp.h, include/amba.h: ported from 4.6.6
+
2006-06-24 Joel Sherrill <joel@OARcorp.com>
* 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
+
+