diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-12-09 22:37:12 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-12-09 22:37:12 +0000 |
commit | 9559674bcd51bbcb3657d276b13092a26b1559c6 (patch) | |
tree | f3a48498ab630a993c83e45d67911e63042843c7 /c/src/lib/libbsp | |
parent | Upgrade to automake-1.11.1 (diff) | |
download | rtems-9559674bcd51bbcb3657d276b13092a26b1559c6.tar.bz2 |
2009-12-09 Joel Sherrill <joel.sherrill@oarcorp.com>
* startup/bspgetworkarea.c: Add debug printk's.
* startup/linkcmds: Using "-Wl,--defsym -Wl,RamSize=0x1000000"
results in _RamSize being defined. Handle this properly.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/ChangeLog | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c | 22 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/linkcmds | 6 |
3 files changed, 31 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/ChangeLog b/c/src/lib/libbsp/i386/pc386/ChangeLog index 47f34f149b..b5758c7b55 100644 --- a/c/src/lib/libbsp/i386/pc386/ChangeLog +++ b/c/src/lib/libbsp/i386/pc386/ChangeLog @@ -1,3 +1,11 @@ +2009-12-09 Joel Sherrill <joel.sherrill@oarcorp.com> + + * startup/bspgetworkarea.c: Add debug printk's. + * startup/linkcmds: Using "-Wl,--defsym -Wl,RamSize=0x1000000" + results in _RamSize being defined. Handle this properly. + + + 2009-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> * include/bsp.h: BSP should not define diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c b/c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c index df11f8505d..e21512a7cb 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c +++ b/c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c @@ -13,9 +13,14 @@ * $Id$ */ +/* #define BSP_GET_WORK_AREA_DEBUG */ #include <bsp.h> #include <bsp/bootcard.h> +#ifdef BSP_GET_WORK_AREA_DEBUG + #include <rtems/bspIo.h> +#endif + /* * These are provided by the linkcmds. */ @@ -74,6 +79,9 @@ void bsp_size_memory(void) (_boot_multiboot_info.flags & 1) && _boot_multiboot_info.mem_upper ) { bsp_mem_size = _boot_multiboot_info.mem_upper * 1024; + #ifdef BSP_GET_WORK_AREA_DEBUG + printk( "Multiboot info says we have 0x%08x\n", bsp_mem_size ); + #endif } if ( (uintptr_t) RamSize == (uintptr_t) 0xFFFFFFFF ) { @@ -89,16 +97,21 @@ void bsp_size_memory(void) for(i=lowest; i<=2048; i++) { topAddr = i*1024*1024 - 4; - val = *(uint32_t*)topAddr; + val = *(volatile uint32_t*)topAddr; if (val != topAddr) { break; } } topAddr = (i-1)*1024*1024 - 4; + #ifdef BSP_GET_WORK_AREA_DEBUG + printk( "Dynamically sized to 0x%08x\n", topAddr ); + #endif } else { - printk( "hardcoded\n" ); topAddr = (uintptr_t) RamSize; + #ifdef BSP_GET_WORK_AREA_DEBUG + printk( "hardcoded to 0x%08x\n", topAddr ); + #endif } bsp_mem_size = topAddr; @@ -120,10 +133,13 @@ void bsp_get_work_area( *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA; *heap_size = (uintptr_t) HeapSize; - #if 0 + #ifdef BSP_GET_WORK_AREA_DEBUG + printk( "bsp_mem_size = 0x%08x\n", bsp_mem_size ); + printk( "rtemsFreeMemStart = 0x%08x\n", rtemsFreeMemStart ); printk( "WorkArea Base = %p\n", *work_area_start ); printk( "WorkArea Size = 0x%08x\n", *work_area_size ); printk( "C Program Heap Base = %p\n", *heap_start ); printk( "C Program Heap Size = 0x%08x\n", *heap_size ); + printk( "End of WorkArea = %p\n", *work_area_start + *work_area_size ); #endif } diff --git a/c/src/lib/libbsp/i386/pc386/startup/linkcmds b/c/src/lib/libbsp/i386/pc386/startup/linkcmds index f7e3385ae9..8f24dd41cc 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/linkcmds +++ b/c/src/lib/libbsp/i386/pc386/startup/linkcmds @@ -17,8 +17,10 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", OUTPUT_ARCH(i386) ENTRY(_start) */ -HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0; -RamSize = DEFINED(RamSize) ? RamSize : 0xFFFFFFFF; +HeapSize = DEFINED(HeapSize) ? HeapSize : + DEFINED(_HeapSize) ? _HeapSize : 0x0; +RamSize = DEFINED(RamSize) ? RamSize : + DEFINED(_RamSize) ? _RamSize : 0xFFFFFFFF; SECTIONS { |