summaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-12-12 14:28:56 +0800
committerPeng Fan <peng.fan@nxp.com>2018-12-12 15:00:05 +0800
commit8132f6b5848d45cab795bb472d6484130985415d (patch)
treef5324c67410fef772a4add6c1e78b1e9e4159ad5 /board/freescale
parent484104758d3c2f98d3c9ae493f778b1427e2630c (diff)
MLK-20542 imx8qm: xen: mek: add magic number
Write magic number in board early init, and clear magic when booting Linux. This is to let XEN know the current EL1 code is U-Boot or Linux when reset/reboot. This is just a workaround because CM41 could not communicate with XEN now, even XEN knows that EL1 is reseting/rebooting. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Flynn xu <flynn.xu@nxp.com>
Diffstat (limited to 'board/freescale')
-rw-r--r--board/freescale/imx8qm_mek/imx8qm_mek.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c
index 2efec39736..17979c03e7 100644
--- a/board/freescale/imx8qm_mek/imx8qm_mek.c
+++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
@@ -67,8 +67,10 @@ int board_early_init_f(void)
sc_err_t sciErr = 0;
/* When start u-boot in XEN VM, directly return */
- if (IS_ENABLED(CONFIG_XEN))
+ if (IS_ENABLED(CONFIG_XEN)) {
+ writel(0xF53535F5, (void __iomem *)0x80000000);
return 0;
+ }
ipcHndl = gd->arch.ipc_channel_handle;
@@ -457,8 +459,11 @@ void board_quiesce_devices(void)
"dma_lpuart0",
};
- if (IS_ENABLED(CONFIG_XEN))
+ if (IS_ENABLED(CONFIG_XEN)) {
+ /* Clear magic number to let xen know uboot is over */
+ writel(0x0, (void __iomem *)0x80000000);
return;
+ }
power_off_pd_devices(power_on_devices, ARRAY_SIZE(power_on_devices));
}