summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Huang <Anson.Huang@nxp.com>2019-02-27 14:38:15 +0800
committerAnson Huang <Anson.Huang@nxp.com>2019-12-13 10:41:30 +0800
commite0ab18940626c53eb24b46eb26bbf7aefc1ce97f (patch)
tree505c7fa6a9039007421cde707c977fea489a2c9a
parent79a482c0c5c0dbd59a393fc252ffc85a33c980bb (diff)
imx: fix partition reboot fail when debug console is enabled
With partition reboot enabled, console_list variable which is located in data section is NOT reset, system will be busy looping in early console operation of flush_loop() if console_list is NOT 0 while HW console is NOT initialized, so we have to clear this variable to make partition reboot work. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
-rw-r--r--plat/imx/imx8qm/imx8qm_bl31_setup.c6
-rw-r--r--plat/imx/imx8qx/imx8qx_bl31_setup.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/plat/imx/imx8qm/imx8qm_bl31_setup.c b/plat/imx/imx8qm/imx8qm_bl31_setup.c
index 66b6aaac..4c8d1325 100644
--- a/plat/imx/imx8qm/imx8qm_bl31_setup.c
+++ b/plat/imx/imx8qm/imx8qm_bl31_setup.c
@@ -34,6 +34,10 @@ IMPORT_SYM(unsigned long, __RO_END__, BL31_RO_END);
IMPORT_SYM(unsigned long, __RW_START__, BL31_RW_START);
IMPORT_SYM(unsigned long, __RW_END__, BL31_RW_END);
+#if DEBUG_CONSOLE
+extern unsigned long console_list;
+#endif
+
static entry_point_info_t bl32_image_ep_info;
static entry_point_info_t bl33_image_ep_info;
@@ -295,6 +299,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
{
#if DEBUG_CONSOLE
static console_lpuart_t console;
+
+ console_list = 0;
#endif
if (sc_ipc_open(&ipc_handle, SC_IPC_BASE) != SC_ERR_NONE)
panic();
diff --git a/plat/imx/imx8qx/imx8qx_bl31_setup.c b/plat/imx/imx8qx/imx8qx_bl31_setup.c
index f71a7bb5..ca91725e 100644
--- a/plat/imx/imx8qx/imx8qx_bl31_setup.c
+++ b/plat/imx/imx8qx/imx8qx_bl31_setup.c
@@ -34,6 +34,10 @@ IMPORT_SYM(unsigned long, __RO_END__, BL31_RO_END);
IMPORT_SYM(unsigned long, __RW_START__, BL31_RW_START);
IMPORT_SYM(unsigned long, __RW_END__, BL31_RW_END);
+#if DEBUG_CONSOLE
+extern unsigned long console_list;
+#endif
+
static entry_point_info_t bl32_image_ep_info;
static entry_point_info_t bl33_image_ep_info;
@@ -275,6 +279,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
{
#if DEBUG_CONSOLE
static console_lpuart_t console;
+
+ console_list = 0;
#endif
if (sc_ipc_open(&ipc_handle, SC_IPC_BASE) != SC_ERR_NONE)
panic();