summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-05-20 22:13:16 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-05-20 22:13:16 +0000
commitd04bf28ef6492b4034960b531bbacb52c850330e (patch)
tree6e2dc17a7712eaa7ac82bd5e4a1b4803d64fd713 /c
parent2008-05-20 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-d04bf28ef6492b4034960b531bbacb52c850330e.tar.bz2
2008-05-20 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac, startup/start.c: Use new framework capability where RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/arm/nds/ChangeLog5
-rw-r--r--c/src/lib/libbsp/arm/nds/Makefile.am15
-rw-r--r--c/src/lib/libbsp/arm/nds/configure.ac2
-rw-r--r--c/src/lib/libbsp/arm/nds/startup/start.c60
4 files changed, 34 insertions, 48 deletions
diff --git a/c/src/lib/libbsp/arm/nds/ChangeLog b/c/src/lib/libbsp/arm/nds/ChangeLog
index 1625340299..42d6737ee7 100644
--- a/c/src/lib/libbsp/arm/nds/ChangeLog
+++ b/c/src/lib/libbsp/arm/nds/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-20 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * Makefile.am, configure.ac, startup/start.c: Use new framework
+ capability where RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION.
+
2008-04-18 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am: Use bin2s to produce assembly files which do not need
diff --git a/c/src/lib/libbsp/arm/nds/Makefile.am b/c/src/lib/libbsp/arm/nds/Makefile.am
index e3afcf97c3..264cf14ef7 100644
--- a/c/src/lib/libbsp/arm/nds/Makefile.am
+++ b/c/src/lib/libbsp/arm/nds/Makefile.am
@@ -33,11 +33,15 @@ include_rtems_HEADERS = fb/fb.h touchscreen/touchscreen.h sound/sound.h
noinst_PROGRAMS += startup.rel
startup_rel_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
startup/start.c ../../shared/bsppredriverhook.c \
- ../../shared/bootcard.c ../../shared/sbrk.c \
- ../../shared/gnatinstallhandler.c
+ ../../shared/bsppretaskinghook.c ../../shared/bootcard.c
startup_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM9 -I$(srcdir)/libnds/include
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+noinst_PROGRAMS += gnatsupp.rel
+gnatsupp_rel_SOURCES = ../../shared/gnatinstallhandler.c
+gnatsupp_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM9 -I$(srcdir)/libnds/include
+gnatsupp_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+
noinst_PROGRAMS += clock.rel
clock_rel_SOURCES = clock/clock.c
clock_rel_CPPFLAGS = $(AM_CPPFLAGS) -DARM9 -I$(srcdir)/libnds/include
@@ -251,9 +255,12 @@ project_lib_DATA += coproc.bin
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES =
-libbsp_a_LIBADD = clock.rel console.rel startup.rel irq.rel timer.rel libnds9.rel rtc.rel fb.rel touchscreen.rel sound.rel block.rel libdldi.rel
+libbsp_a_LIBADD = clock.rel console.rel gnatsupp.rel startup.rel irq.rel \
+ timer.rel libnds9.rel rtc.rel fb.rel touchscreen.rel sound.rel \
+ block.rel libdldi.rel
+
if HAS_NETWORKING
-libbsp_a_LIBADD += wifi.rel dswifi9.rel
+ libbsp_a_LIBADD += wifi.rel dswifi9.rel
endif
include $(srcdir)/preinstall.am
diff --git a/c/src/lib/libbsp/arm/nds/configure.ac b/c/src/lib/libbsp/arm/nds/configure.ac
index 860a89acfc..9923363b2e 100644
--- a/c/src/lib/libbsp/arm/nds/configure.ac
+++ b/c/src/lib/libbsp/arm/nds/configure.ac
@@ -19,6 +19,8 @@ RTEMS_PROG_CCAS
RTEMS_CHECK_NETWORKING
AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
+RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION
+
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
## $srcdir/mk_libnds.sh $srcdir
diff --git a/c/src/lib/libbsp/arm/nds/startup/start.c b/c/src/lib/libbsp/arm/nds/startup/start.c
index 4a5022be06..2521a22793 100644
--- a/c/src/lib/libbsp/arm/nds/startup/start.c
+++ b/c/src/lib/libbsp/arm/nds/startup/start.c
@@ -15,47 +15,27 @@
#include <nds.h>
/*
- * ld linker symbols.
- */
-
-extern uint8_t __bss_start;
-extern uint8_t __bss_end;
-extern uint8_t _end;
-extern uint8_t __ewram_end;
-
-/*
- * address of start of free memory - should be updated after creating new
- * partitions or regions.
- */
-
-static uint32_t heap_start;
-
-/*
- * other bsp init functions.
- */
-
-extern void bsp_libc_init (void *, uint32_t, int);
-
-/*
* This definition comes from ARM cpu code.
*/
-
extern unsigned int arm_cpu_mode;
/*
- * setup libc.
+ * This method returns the base address and size of the area which
+ * is to be allocated between the RTEMS Workspace and the C Program
+ * Heap.
*/
-
-void
-bsp_pretasking_hook (void)
+void bsp_get_workarea(
+ void **workarea_base,
+ size_t *workarea_size,
+ size_t *requested_heap_size
+)
{
- uint32_t heap_size;
+ extern uint8_t _end;
+ extern uint8_t __ewram_end;
- printk ("[+] initializing heap\n");
-
- /* initialize heap with all remaining memory */
- heap_size = (uint32_t) & __ewram_end - heap_start;
- bsp_libc_init ((void *) heap_start, heap_size, 0);
+ *workarea_base = &_end;
+ *workarea_size = (void *)&__ewram_end - (void *)&_end;
+ *requested_heap_size = 0;
}
/*
@@ -65,8 +45,6 @@ bsp_pretasking_hook (void)
void
bsp_start (void)
{
- Configuration.work_space_start = &_end;
-
/* initialize irq management */
BSP_rtems_irq_mngt_init ();
@@ -89,15 +67,6 @@ bsp_start (void)
/* configure clock period */
Configuration.microseconds_per_tick = 10000; /* us */
-
- /* check memory space for rtems workspace */
- heap_start =
- Configuration.work_space_start +
- rtems_configuration_get_work_space_size ();
- if (heap_start > &__ewram_end) {
- printk ("[!] memory exhausted\n");
- bsp_cleanup ();
- }
}
/*
@@ -107,6 +76,9 @@ bsp_start (void)
void
bss_reset (void)
{
+ extern uint8_t __bss_start;
+ extern uint8_t __bss_end;
+
memset (&__bss_start, 0, (uint32_t) & __bss_end - (uint32_t) & __bss_start);
}