From 78aac78ad246ac8a04e1946bb9cd41b5734ba909 Mon Sep 17 00:00:00 2001 From: Stephan Gerhold Date: Fri, 16 Sep 2022 10:45:19 +0200 Subject: [PATCH] feat(msm8916): add port for MDM9607 The Qualcomm X5 Modem (MDM9607) SoC is very similar to the existing MSM8916, except for: - Single core ARM Cortex-A7 - No GPU - MMU-500 r2p4 instead of r0p0 (need to clear CACHE_LOCK bit) - Different default BL31/BL33 address and UART number Make the existing MSM8916 platform port usable for MDM9607 as well by adding some minimal if statements where necessary plus the platform make files for mdm9607. Change-Id: I4dd02c8e29af6282d8d828c3027c5e333459ba36 Signed-off-by: Stephan Gerhold --- plat/qti/mdm9607/platform.mk | 14 ++++++++++++++ plat/qti/mdm9607/sp_min/sp_min-mdm9607.mk | 7 +++++++ plat/qti/msm8916/include/platform_def.h | 4 ++++ plat/qti/msm8916/msm8916_setup.c | 3 +++ 4 files changed, 28 insertions(+) create mode 100644 plat/qti/mdm9607/platform.mk create mode 100644 plat/qti/mdm9607/sp_min/sp_min-mdm9607.mk diff --git a/plat/qti/mdm9607/platform.mk b/plat/qti/mdm9607/platform.mk new file mode 100644 index 000000000..4c6938c0f --- /dev/null +++ b/plat/qti/mdm9607/platform.mk @@ -0,0 +1,14 @@ +# +# Copyright (c) 2022-2023, Stephan Gerhold +# +# SPDX-License-Identifier: BSD-3-Clause +# + +ARM_ARCH_MAJOR := 7 +ARM_CORTEX_A7 := yes + +BL31_BASE ?= 0x87e00000 +PRELOADED_BL33_BASE ?= 0x82900000 +QTI_UART_NUM ?= 5 + +include plat/qti/msm8916/platform.mk diff --git a/plat/qti/mdm9607/sp_min/sp_min-mdm9607.mk b/plat/qti/mdm9607/sp_min/sp_min-mdm9607.mk new file mode 100644 index 000000000..28a6f01b3 --- /dev/null +++ b/plat/qti/mdm9607/sp_min/sp_min-mdm9607.mk @@ -0,0 +1,7 @@ +# +# Copyright (c) 2022-2023, Stephan Gerhold +# +# SPDX-License-Identifier: BSD-3-Clause +# + +include plat/qti/msm8916/sp_min/sp_min-msm8916.mk diff --git a/plat/qti/msm8916/include/platform_def.h b/plat/qti/msm8916/include/platform_def.h index 2b922d813..a5baacd0d 100644 --- a/plat/qti/msm8916/include/platform_def.h +++ b/plat/qti/msm8916/include/platform_def.h @@ -31,7 +31,11 @@ #else #define PLATFORM_CLUSTER_COUNT U(1) #endif +#if defined(PLAT_mdm9607) +#define PLATFORM_CPU_PER_CLUSTER_SHIFT U(0) /* 1 */ +#else #define PLATFORM_CPU_PER_CLUSTER_SHIFT U(2) /* 4 */ +#endif #define PLATFORM_CPUS_PER_CLUSTER (1 << PLATFORM_CPU_PER_CLUSTER_SHIFT) #define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER_COUNT * \ PLATFORM_CPUS_PER_CLUSTER) diff --git a/plat/qti/msm8916/msm8916_setup.c b/plat/qti/msm8916/msm8916_setup.c index 9576ea4e0..69c0d78a2 100644 --- a/plat/qti/msm8916/msm8916_setup.c +++ b/plat/qti/msm8916/msm8916_setup.c @@ -51,6 +51,9 @@ static const struct uartdm_gpios uartdm_gpio_map[] = { {4, 5, 0x2}, {20, 21, 0x3}, #elif defined(PLAT_msm8916) || defined(PLAT_msm8939) {0, 1, 0x2}, {4, 5, 0x2}, +#elif defined(PLAT_mdm9607) + {12, 13, 0x2}, {4, 5, 0x2}, {0, 1, 0x1}, + {16, 17, 0x2}, {8, 9, 0x2}, {20, 21, 0x2}, #endif };