Commit 84c7771c4b9fa7b94a1544299ddece4c573671ec

Authored by Ji Luo
1 parent 60fd0ed90a

MA-14273-1 imx8q: Move spl to dram to fix reboot issue

The spl is located at ocram which will be lost when suspend/resume,
partition reboot will make A core reboot from the start address of
ATF, which blocks dual bootloader feature on Android Auto.

Move the spl to dram and make the partition reboot from spl to fix this
issue. The memory map will be changed to:
  SPL:    0x0000_0000 --------> 0x8000_0000
  ATF:    0x8000_0000 --------> 0x8004_0000
  U-boot: 0x8002_0000 --------> 0x8006_0000

Test: reboot ok on imx8qm/imx8qxp.

Change-Id: I49e8be51bf427dd00eb7507de22a787c6f6e1582
Signed-off-by: Ji Luo <ji.luo@nxp.com>

Showing 8 changed files with 130 additions and 4 deletions Side-by-side Diff

configs/imx8qm_mek_android_defconfig
... ... @@ -3,7 +3,7 @@
3 3 CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek"
4 4 CONFIG_SYS_EXTRA_OPTIONS="ANDROID_SUPPORT"
5 5 CONFIG_TARGET_IMX8QM_MEK=y
6   -CONFIG_SYS_TEXT_BASE=0x80020000
  6 +CONFIG_SYS_TEXT_BASE=0x80060000
7 7 CONFIG_EFI_PARTITION=y
8 8 CONFIG_CMD_IMPORTENV=n
9 9 CONFIG_SYS_MALLOC_F_LEN=0x2000
configs/imx8qm_mek_androidauto_trusty_defconfig
... ... @@ -3,7 +3,7 @@
3 3 CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek-auto"
4 4 CONFIG_SYS_EXTRA_OPTIONS="ANDROID_AUTO_SUPPORT"
5 5 CONFIG_TARGET_IMX8QM_MEK=y
6   -CONFIG_SYS_TEXT_BASE=0x80020000
  6 +CONFIG_SYS_TEXT_BASE=0x80060000
7 7 CONFIG_EFI_PARTITION=y
8 8 CONFIG_CMD_IMPORTENV=n
9 9 CONFIG_SYS_MALLOC_F_LEN=0x2000
configs/imx8qxp_mek_android_defconfig
... ... @@ -3,7 +3,7 @@
3 3 CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-mek"
4 4 CONFIG_SYS_EXTRA_OPTIONS="ANDROID_SUPPORT"
5 5 CONFIG_TARGET_IMX8QXP_MEK=y
6   -CONFIG_SYS_TEXT_BASE=0x80020000
  6 +CONFIG_SYS_TEXT_BASE=0x80060000
7 7 CONFIG_EFI_PARTITION=y
8 8 CONFIG_CMD_IMPORTENV=n
9 9 CONFIG_SYS_MALLOC_F_LEN=0x2000
configs/imx8qxp_mek_androidauto_trusty_defconfig
... ... @@ -3,7 +3,7 @@
3 3 CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-mek-auto"
4 4 CONFIG_SYS_EXTRA_OPTIONS="ANDROID_AUTO_SUPPORT"
5 5 CONFIG_TARGET_IMX8QXP_MEK=y
6   -CONFIG_SYS_TEXT_BASE=0x80020000
  6 +CONFIG_SYS_TEXT_BASE=0x80060000
7 7 CONFIG_EFI_PARTITION=y
8 8 CONFIG_SYS_MALLOC_F_LEN=0x2000
9 9 CONFIG_DM=y
include/configs/imx8qm_mek_android.h
... ... @@ -66,6 +66,38 @@
66 66 #define CONFIG_FASTBOOT_BUF_ADDR 0x98000000
67 67 #define CONFIG_FASTBOOT_BUF_SIZE 0x19000000
68 68  
  69 +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_NOT_UUU_BUILD)
  70 +/* Change default spl/atf/u-boot address to support partition reboot. */
  71 +#ifdef CONFIG_SPL_TEXT_BASE
  72 +#undef CONFIG_SPL_TEXT_BASE
  73 +#define CONFIG_SPL_TEXT_BASE 0x80000000
  74 +#endif
  75 +#ifdef CONFIG_SPL_STACK
  76 +#undef CONFIG_SPL_STACK
  77 +#define CONFIG_SPL_STACK 0x8003E000
  78 +#endif
  79 +#ifdef CONFIG_SPL_BSS_START_ADDR
  80 +#undef CONFIG_SPL_BSS_START_ADDR
  81 +#define CONFIG_SPL_BSS_START_ADDR 0x80038000
  82 +#endif
  83 +#ifdef CONFIG_SYS_SPL_MALLOC_START
  84 +#undef CONFIG_SYS_SPL_MALLOC_START
  85 +#define CONFIG_SYS_SPL_MALLOC_START 0x80020000
  86 +#endif
  87 +#ifdef CONFIG_MALLOC_F_ADDR
  88 +#undef CONFIG_MALLOC_F_ADDR
  89 +#define CONFIG_MALLOC_F_ADDR 0x80020000
  90 +#endif
  91 +#ifdef CONFIG_ATF_TEXT_BASE
  92 +#undef CONFIG_ATF_TEXT_BASE
  93 +#define CONFIG_ATF_TEXT_BASE 0x80040000
  94 +#endif
  95 +#ifdef CONFIG_SYS_ATF_START
  96 +#undef CONFIG_SYS_ATF_START
  97 +#define CONFIG_SYS_ATF_START 0x80040000
  98 +#endif
  99 +#endif
  100 +
69 101 #define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
70 102  
71 103 #endif /* IMX8QM_MEK_ANDROID_H */
include/configs/imx8qm_mek_android_auto.h
... ... @@ -120,6 +120,37 @@
120 120 #define CONFIG_FSL_CAAM_KB
121 121 #define CONFIG_SPL_CRYPTO_SUPPORT
122 122 #define CONFIG_SYS_FSL_SEC_LE
  123 +
  124 +/* Change default spl/atf/u-boot address to support partition reboot. */
  125 +#ifdef CONFIG_SPL_TEXT_BASE
  126 +#undef CONFIG_SPL_TEXT_BASE
  127 +#define CONFIG_SPL_TEXT_BASE 0x80000000
  128 +#endif
  129 +#ifdef CONFIG_SPL_STACK
  130 +#undef CONFIG_SPL_STACK
  131 +#define CONFIG_SPL_STACK 0x8003E000
  132 +#endif
  133 +#ifdef CONFIG_SPL_BSS_START_ADDR
  134 +#undef CONFIG_SPL_BSS_START_ADDR
  135 +#define CONFIG_SPL_BSS_START_ADDR 0x80038000
  136 +#endif
  137 +#ifdef CONFIG_SYS_SPL_MALLOC_START
  138 +#undef CONFIG_SYS_SPL_MALLOC_START
  139 +#define CONFIG_SYS_SPL_MALLOC_START 0x80020000
  140 +#endif
  141 +#ifdef CONFIG_MALLOC_F_ADDR
  142 +#undef CONFIG_MALLOC_F_ADDR
  143 +#define CONFIG_MALLOC_F_ADDR 0x80020000
  144 +#endif
  145 +#ifdef CONFIG_ATF_TEXT_BASE
  146 +#undef CONFIG_ATF_TEXT_BASE
  147 +#define CONFIG_ATF_TEXT_BASE 0x80040000
  148 +#endif
  149 +#ifdef CONFIG_SYS_ATF_START
  150 +#undef CONFIG_SYS_ATF_START
  151 +#define CONFIG_SYS_ATF_START 0x80040000
  152 +#endif
  153 +
123 154 #endif
124 155  
125 156 #define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
include/configs/imx8qxp_mek_android.h
... ... @@ -61,6 +61,38 @@
61 61 #define CONFIG_FASTBOOT_BUF_ADDR 0x98000000
62 62 #define CONFIG_FASTBOOT_BUF_SIZE 0x19000000
63 63  
  64 +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_NOT_UUU_BUILD)
  65 +/* Change default spl/atf/u-boot address to support partition reboot. */
  66 +#ifdef CONFIG_SPL_TEXT_BASE
  67 +#undef CONFIG_SPL_TEXT_BASE
  68 +#define CONFIG_SPL_TEXT_BASE 0x80000000
  69 +#endif
  70 +#ifdef CONFIG_SPL_STACK
  71 +#undef CONFIG_SPL_STACK
  72 +#define CONFIG_SPL_STACK 0x8003E000
  73 +#endif
  74 +#ifdef CONFIG_SPL_BSS_START_ADDR
  75 +#undef CONFIG_SPL_BSS_START_ADDR
  76 +#define CONFIG_SPL_BSS_START_ADDR 0x80038000
  77 +#endif
  78 +#ifdef CONFIG_SYS_SPL_MALLOC_START
  79 +#undef CONFIG_SYS_SPL_MALLOC_START
  80 +#define CONFIG_SYS_SPL_MALLOC_START 0x80020000
  81 +#endif
  82 +#ifdef CONFIG_MALLOC_F_ADDR
  83 +#undef CONFIG_MALLOC_F_ADDR
  84 +#define CONFIG_MALLOC_F_ADDR 0x80020000
  85 +#endif
  86 +#ifdef CONFIG_ATF_TEXT_BASE
  87 +#undef CONFIG_ATF_TEXT_BASE
  88 +#define CONFIG_ATF_TEXT_BASE 0x80040000
  89 +#endif
  90 +#ifdef CONFIG_SYS_ATF_START
  91 +#undef CONFIG_SYS_ATF_START
  92 +#define CONFIG_SYS_ATF_START 0x80040000
  93 +#endif
  94 +#endif
  95 +
64 96 #define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED
65 97  
66 98 #endif /* IMX8QXP_MEK_ANDROID_H */
include/configs/imx8qxp_mek_android_auto.h
... ... @@ -112,6 +112,37 @@
112 112 #define CONFIG_FSL_CAAM_KB
113 113 #define CONFIG_SPL_CRYPTO_SUPPORT
114 114 #define CONFIG_SYS_FSL_SEC_LE
  115 +
  116 +/* Change default spl/atf/u-boot address to support partition reboot. */
  117 +#ifdef CONFIG_SPL_TEXT_BASE
  118 +#undef CONFIG_SPL_TEXT_BASE
  119 +#define CONFIG_SPL_TEXT_BASE 0x80000000
  120 +#endif
  121 +#ifdef CONFIG_SPL_STACK
  122 +#undef CONFIG_SPL_STACK
  123 +#define CONFIG_SPL_STACK 0x8003E000
  124 +#endif
  125 +#ifdef CONFIG_SPL_BSS_START_ADDR
  126 +#undef CONFIG_SPL_BSS_START_ADDR
  127 +#define CONFIG_SPL_BSS_START_ADDR 0x80038000
  128 +#endif
  129 +#ifdef CONFIG_SYS_SPL_MALLOC_START
  130 +#undef CONFIG_SYS_SPL_MALLOC_START
  131 +#define CONFIG_SYS_SPL_MALLOC_START 0x80020000
  132 +#endif
  133 +#ifdef CONFIG_MALLOC_F_ADDR
  134 +#undef CONFIG_MALLOC_F_ADDR
  135 +#define CONFIG_MALLOC_F_ADDR 0x80020000
  136 +#endif
  137 +#ifdef CONFIG_ATF_TEXT_BASE
  138 +#undef CONFIG_ATF_TEXT_BASE
  139 +#define CONFIG_ATF_TEXT_BASE 0x80040000
  140 +#endif
  141 +#ifdef CONFIG_SYS_ATF_START
  142 +#undef CONFIG_SYS_ATF_START
  143 +#define CONFIG_SYS_ATF_START 0x80040000
  144 +#endif
  145 +
115 146 #endif
116 147  
117 148 #define AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED