aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Rigby <john.rigby@linaro.org>2011-10-21 11:34:34 -0600
committerJohn Rigby <john.rigby@linaro.org>2012-05-02 19:44:07 -0600
commit72e4f52a227776c9e5b328d63b098863e4871d9c (patch)
tree54282525abb967c464dcc456cec1c8e074ed2f2a
parent3fb6072b3628f0d5b540ac3b03f245bbfbdfca94 (diff)
downloadu-boot-linaro-stable-72e4f52a227776c9e5b328d63b098863e4871d9c.tar.gz
OMAP4: avoid null pointer access in save_boot_params
When booting via spl the parameter layout is apparently different and this leads to following bad pointers. For now just work around the issue by checking pointers before following them. Signed-off-by: John Rigby <john.rigby@linaro.org>
-rw-r--r--arch/arm/cpu/armv7/omap-common/lowlevel_init.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
index 35f38acf5..bc0e66a9a 100644
--- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
+++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
@@ -65,7 +65,13 @@ save_boot_params:
bgt 2f
/* Store the boot mode (raw/FAT) in omap_boot_mode */
ldr r2, [r0, #DEV_DESC_PTR_OFFSET] @ get the device descriptor ptr
+ bic r3, r2, #255
+ cmp r3, #0
+ beq 1f
ldr r2, [r2, #DEV_DATA_PTR_OFFSET] @ get the pDeviceData ptr
+ bic r3, r2, #255
+ cmp r3, #0
+ beq 1f
ldr r2, [r2, #BOOT_MODE_OFFSET] @ get the boot mode
ldr r3, =omap_bootmode
str r2, [r3]