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-25 07:54:06 -0600
commit5ad0126c4ba20c4ff5227d3adb0cdaa00d518d88 (patch)
tree9fbd633d9c5f16dbf7080d0453ca36984d86861a
parent4109916fcd0f399923eb5d757b6f827183617c49 (diff)
downloadu-boot-linaro-stable-5ad0126c4ba20c4ff5227d3adb0cdaa00d518d88.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]