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-04-19 02:18:34 -0600
commit22534918e225e1824783bd1defe93ff2501ef54e (patch)
tree14f54e208d8d600449af88a2c8fc1b3e4bbc4575
parent131ae652ac32ee8bc5a3cdf0f4c5dafc912cab23 (diff)
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]