diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-16 22:13:54 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-16 22:13:54 +0000 |
commit | e1ee0b599c8eed360c024b417fc47392447aa5aa (patch) | |
tree | bc597e545891c0d5aedaee1ae70047b954847070 /c/src/lib/libbsp | |
parent | 2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-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')
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) } |