9
0
Fork 0

memory: fix size address calculation

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@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Alexander Aring 2013-01-13 18:42:16 +01:00 committed by Sascha Hauer
parent ce50c0b2b1
commit 3f170cdd58
1 changed files with 2 additions and 2 deletions

View File

@ -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