From ce2be321e8a5865871810b36c580181ea95a1a64 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Thu, 25 Mar 2021 18:46:20 +0800 Subject: [PATCH 1/2] feat(plat/imx8m): add sdei support for i.MX8MN Add sdei support for i.MX8MN, this is to let jailhouse Hypervisor could use SDEI to do hypervisor management, after physical IRQ has been disabled routing. Signed-off-by: Peng Fan Change-Id: Ie15fffdd09e1bba1b22334b8ccac2335c96b8b4d --- plat/imx/imx8m/imx8mn/include/platform_def.h | 5 +++++ plat/imx/imx8m/imx8mn/platform.mk | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/plat/imx/imx8m/imx8mn/include/platform_def.h b/plat/imx/imx8m/imx8mn/include/platform_def.h index 2444e662e..9c46d8d27 100644 --- a/plat/imx/imx8m/imx8mn/include/platform_def.h +++ b/plat/imx/imx8m/imx8mn/include/platform_def.h @@ -34,6 +34,11 @@ #define PLAT_WAIT_RET_STATE U(1) #define PLAT_STOP_OFF_STATE U(3) +#define PLAT_PRI_BITS U(3) +#define PLAT_SDEI_CRITICAL_PRI 0x10 +#define PLAT_SDEI_NORMAL_PRI 0x20 +#define PLAT_SDEI_SGI_PRIVATE U(9) + #define BL31_BASE U(0x960000) #define BL31_LIMIT U(0x980000) diff --git a/plat/imx/imx8m/imx8mn/platform.mk b/plat/imx/imx8m/imx8mn/platform.mk index 8c4ad1c21..208708918 100644 --- a/plat/imx/imx8m/imx8mn/platform.mk +++ b/plat/imx/imx8m/imx8mn/platform.mk @@ -31,6 +31,8 @@ BL31_SOURCES += plat/imx/common/imx8_helpers.S \ plat/imx/common/imx_sip_handler.c \ plat/imx/common/imx_sip_svc.c \ plat/imx/common/imx_uart_console.S \ + plat/imx/common/imx_ehf.c \ + plat/imx/common/imx_sdei.c \ lib/cpus/aarch64/cortex_a53.S \ drivers/arm/tzc/tzc380.c \ drivers/delay_timer/delay_timer.c \ @@ -54,3 +56,6 @@ $(eval $(call add_define,BL32_SIZE)) IMX_BOOT_UART_BASE ?= 0x30890000 $(eval $(call add_define,IMX_BOOT_UART_BASE)) + +EL3_EXCEPTION_HANDLING := 1 +SDEI_SUPPORT := 1 From 6b63125c415491417e1c389e4015be5ebdee2841 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Thu, 25 Mar 2021 18:46:58 +0800 Subject: [PATCH 2/2] feat(plat/imx8m): add sdei support for i.MX8MP Add sdei support for i.MX8MM, this is to let jailhouse Hypervisor could use SDEI to do hypervisor management, after physical IRQ has been disabled routing. Signed-off-by: Peng Fan Change-Id: I8308c629448bd8adca9d3d25701adcf0c5a6afc2 --- plat/imx/imx8m/imx8mp/include/platform_def.h | 9 +++++++-- plat/imx/imx8m/imx8mp/platform.mk | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plat/imx/imx8m/imx8mp/include/platform_def.h b/plat/imx/imx8m/imx8mp/include/platform_def.h index a5f265d0d..832bed17e 100644 --- a/plat/imx/imx8m/imx8mp/include/platform_def.h +++ b/plat/imx/imx8m/imx8mp/include/platform_def.h @@ -34,8 +34,13 @@ #define PLAT_WAIT_RET_STATE U(1) #define PLAT_STOP_OFF_STATE U(3) -#define BL31_BASE U(0x970000) -#define BL31_LIMIT U(0x990000) +#define BL31_BASE U(0x960000) +#define BL31_LIMIT U(0x980000) + +#define PLAT_PRI_BITS U(3) +#define PLAT_SDEI_CRITICAL_PRI 0x10 +#define PLAT_SDEI_NORMAL_PRI 0x20 +#define PLAT_SDEI_SGI_PRIVATE U(9) /* non-secure uboot base */ #define PLAT_NS_IMAGE_OFFSET U(0x40200000) diff --git a/plat/imx/imx8m/imx8mp/platform.mk b/plat/imx/imx8m/imx8mp/platform.mk index 1d11e3df4..6be2f9861 100644 --- a/plat/imx/imx8m/imx8mp/platform.mk +++ b/plat/imx/imx8m/imx8mp/platform.mk @@ -28,6 +28,8 @@ BL31_SOURCES += plat/imx/common/imx8_helpers.S \ plat/imx/imx8m/imx8mp/imx8mp_psci.c \ plat/imx/imx8m/imx8mp/gpc.c \ plat/imx/common/imx8_topology.c \ + plat/imx/common/imx_ehf.c \ + plat/imx/common/imx_sdei.c \ plat/imx/common/imx_sip_handler.c \ plat/imx/common/imx_sip_svc.c \ plat/imx/common/imx_uart_console.S \ @@ -54,3 +56,6 @@ $(eval $(call add_define,BL32_SIZE)) IMX_BOOT_UART_BASE ?= 0x30890000 $(eval $(call add_define,IMX_BOOT_UART_BASE)) + +EL3_EXCEPTION_HANDLING := 1 +SDEI_SUPPORT := 1