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:
parent
ce50c0b2b1
commit
3f170cdd58
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue