aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorVikas Manocha2017-05-28 12:55:08 -0700
committerTom Rini2017-06-08 21:00:27 -0400
commit6bcdd66d1c3766a970e06a61a7233daacb5045db (patch)
tree424d34a36073323df3dc75f2f22fa6d13bbb1444 /common
parent156d64fa55e9914b144c5e83f2a9e13d1223a4d3 (diff)
spl: armv7m: to keep ARM v7M in thumb mode before booting next image
On ARM v7M, the processor will return to ARM mode when executing blx instruction with bit 0 of the address == 0. Always set it to 1 to stay in thumb mode. At present, it is applied only for raw U-Boot. This patch moves it to just before booting next image. This way armv7m will be in thumb mode for any image like raw or image with header like zImage or standard U-Boot. Signed-off-by: Vikas Manocha <vikas.manocha@st.com>
Diffstat (limited to 'common')
-rw-r--r--common/spl/spl.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/common/spl/spl.c b/common/spl/spl.c
index f493a3ad495..7f3fd925ba1 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -121,9 +121,6 @@ void spl_set_header_raw_uboot(struct spl_image_info *spl_image)
{
spl_image->size = CONFIG_SYS_MONITOR_LEN;
spl_image->entry_point = CONFIG_SYS_UBOOT_START;
-#ifdef CONFIG_CPU_V7M
- spl_image->entry_point |= 0x1;
-#endif
spl_image->load_addr = CONFIG_SYS_TEXT_BASE;
spl_image->os = IH_OS_U_BOOT;
spl_image->name = "U-Boot";
@@ -405,6 +402,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
hang();
}
+#ifdef CONFIG_CPU_V7M
+ spl_image.entry_point |= 0x1;
+#endif
switch (spl_image.os) {
case IH_OS_U_BOOT:
debug("Jumping to U-Boot\n");