summaryrefslogtreecommitdiffstats
path: root/c/src/lib
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-12-09 22:37:12 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-12-09 22:37:12 +0000
commit9559674bcd51bbcb3657d276b13092a26b1559c6 (patch)
treef3a48498ab630a993c83e45d67911e63042843c7 /c/src/lib
parentUpgrade to automake-1.11.1 (diff)
downloadrtems-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')
-rw-r--r--c/src/lib/libbsp/i386/pc386/ChangeLog8
-rw-r--r--c/src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c22
-rw-r--r--c/src/lib/libbsp/i386/pc386/startup/linkcmds6
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
{