summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-16 22:13:54 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-16 22:13:54 +0000
commite1ee0b599c8eed360c024b417fc47392447aa5aa (patch)
treebc597e545891c0d5aedaee1ae70047b954847070 /c/src/lib/libbsp
parent2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-e1ee0b599c8eed360c024b417fc47392447aa5aa.tar.bz2
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* startup/bspgetworkarea.c, startup/linkcmds.base: Do some prep work in anticipation of gen5200 and gen83xx being able to shared bsp_get_work_area() implementation.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/ChangeLog6
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c12
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base5
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/ChangeLog6
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/bspgetworkarea.c12
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base5
6 files changed, 42 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
index 519bbb7291..77ee31f2b0 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
@@ -1,5 +1,11 @@
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
+ * startup/bspgetworkarea.c, startup/linkcmds.base: Do some prep work in
+ anticipation of gen5200 and gen83xx being able to shared
+ bsp_get_work_area() implementation.
+
+2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
+
* clock/clock.c, startup/bspstart.c: Remove unnecessary includes of
rtems/libcsupport.h and rtems/libio.h.
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c b/c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c
index 591ed811ef..935088ed06 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c
@@ -10,6 +10,14 @@
#include <bsp/bootcard.h>
#include <stdint.h>
+/*
+ * These are provided by the linkcmds for ALL of the BSPs which use this file.
+ */
+extern char RamBase[];
+extern char WorkAreaBase[];
+extern char HeapSize[];
+extern char RamSize[];
+
#if defined(HAS_UBOOT)
extern bd_t *uboot_bdinfo_ptr;
#endif
@@ -31,12 +39,12 @@ void bsp_get_work_area(
char *ram_end = (char *) uboot_bdinfo_ptr->bi_memstart +
uboot_bdinfo_ptr->bi_memsize;
#else /* HAS_UBOOT */
- char *ram_end = bsp_ram_end;
+ char *ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
#endif /* HAS_UBOOT */
*work_area_start = bsp_work_area_start;
*work_area_size = ram_end - bsp_work_area_start;
*heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
- *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
+ *heap_size = HeapSize;
}
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
index 1a9e40ec66..88d366f4e1 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
@@ -22,6 +22,10 @@ bsp_dpram_size = LENGTH (DPRAM);
bsp_section_align = 32;
+RamBase = bsp_ram_start;
+RamSize = bsp_ram_size;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
+
SECTIONS {
/*
* BSP: MPC5200 registers
@@ -268,6 +272,7 @@ SECTIONS {
* BSP: Work area start
*/
bsp_work_area_start = .;
+ WorkAreaBase = .;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
index 475b98b9e9..dc88f1087c 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
@@ -1,5 +1,11 @@
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
+ * startup/bspgetworkarea.c, startup/linkcmds.base: Do some prep work in
+ anticipation of gen5200 and gen83xx being able to shared
+ bsp_get_work_area() implementation.
+
+2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
+
* Makefile.am, startup/bspstart.c: Add use of bsp_get_work_area() in
its own file and rely on BSP Framework to perform more
initialization. Remove unnecessary includes of rtems/libio.h and
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspgetworkarea.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspgetworkarea.c
index 3e052ee2ce..70062dcc84 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspgetworkarea.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspgetworkarea.c
@@ -23,6 +23,14 @@
#include <bsp.h>
#include <bsp/bootcard.h>
+/*
+ * These are provided by the linkcmds for ALL of the BSPs which use this file.
+ */
+extern char RamBase[];
+extern char WorkAreaBase[];
+extern char HeapSize[];
+extern char RamSize[];
+
#ifdef HAS_UBOOT
extern bd_t mpc83xx_uboot_board_info;
#endif /* HAS_UBOOT */
@@ -37,11 +45,11 @@ void bsp_get_work_area(
char *ram_end = (char *) mpc83xx_uboot_board_info.bi_memstart +
mpc83xx_uboot_board_info.bi_memsize;
#else /* HAS_UBOOT */
- char *ram_end = bsp_ram_end;
+ char *ram_end = RamBase + (uintptr_t)RamSize;
#endif /* HAS_UBOOT */
*work_area_start = bsp_work_area_start;
*work_area_size = ram_end - bsp_work_area_start;
*heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
- *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
+ *heap_size = HeapSize;
}
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
index 1eab88ebf3..946dfd4679 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
@@ -18,6 +18,10 @@ bsp_rom_size = LENGTH (ROM);
bsp_section_align = 32;
+RamBase = bsp_ram_start;
+RamSize = bsp_ram_size;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
+
SECTIONS {
/*
* BSP: MPC83XX registers
@@ -274,6 +278,7 @@ SECTIONS {
* BSP: Work area start
*/
bsp_work_area_start = .;
+ WorkAreaBase = .;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }