diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-02-06 11:18:07 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-02-08 12:03:20 +0100 |
commit | 857f69ba8c66e3b4834bcaafd373a83043629326 (patch) | |
tree | 9f72ddcb01875d0ed9d46f74dc6c90e05ba50171 /include | |
parent | f7165017f41fab86c1dd97e40de2355fc64dde2f (diff) | |
download | barebox-857f69ba8c66e3b4834bcaafd373a83043629326.tar.gz barebox-857f69ba8c66e3b4834bcaafd373a83043629326.tar.xz |
ARM: start: Fix image size calculation
In barebox_non_pbl_start() we do not run at the address we are linked
at, so we must read linker variables using ld_var(). Since ld_var()
current is not available on arm64 we create two zero sized arrays,
one at the begin of the image and one at the end. The difference
between both is the image size we are looking for.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/sections.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index 984f8b606b..0eb18f614b 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h @@ -6,12 +6,13 @@ extern char __bss_start[], __bss_stop[]; extern char _sdata[], _edata[]; extern char __bare_init_start[], __bare_init_end[]; extern char _end[]; +extern char __image_start[]; extern char __image_end[]; extern void *_barebox_image_size; extern void *_barebox_bare_init_size; extern void *_barebox_pbl_size; -#define barebox_image_size (unsigned int)&_barebox_image_size +#define barebox_image_size (__image_end - __image_start) #define barebox_bare_init_size (unsigned int)&_barebox_bare_init_size #define barebox_pbl_size (unsigned int)&_barebox_pbl_size |