Fix size address calculation. Global variables from <asm/sections.h> which are defined in linker script *.lds files for end addresses has already a +1 calculation. For example: stext = 0x100 with a size about 0x50 will result a etext = 0x150. In this case a correct size calculation is (etext - stext) = 0x50. In function 'request_sdram_region' the end address will be calculated with (start + size - 1) which result a correct end address of 0x149 in this example. Signed-off-by: Alexander Aring <alex.aring@xxxxxxxxx> --- common/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/memory.c b/common/memory.c index 2674002..7dd1384 100644 --- a/common/memory.c +++ b/common/memory.c @@ -74,11 +74,11 @@ static int mem_malloc_resource(void) request_sdram_region("barebox", (unsigned long)&_stext, (unsigned long)&_etext - - (unsigned long)&_stext + 1); + (unsigned long)&_stext); request_sdram_region("bss", (unsigned long)&__bss_start, (unsigned long)&__bss_stop - - (unsigned long)&__bss_start + 1); + (unsigned long)&__bss_start); #ifdef STACK_BASE request_sdram_region("stack", STACK_BASE, STACK_SIZE); #endif -- 1.8.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox