feat(msm8916): add port for MSM8909

The Qualcomm Snapdragon 210 (MSM8909) SoC is very similar to the
existing MSM8916, except for:

  - ARM Cortex-A7 instead of Cortex-A53 (AArch32-only)
  - MMU-500 r2p0 instead of r0p0 (need to clear CACHE_LOCK bit)
  - Different default BL31 address and UART number

Make the existing MSM8916 platform port usable for MSM8909 as well by
adding some minimal if statements where necessary plus the platform
make files for msm8909.

Change-Id: I8eca5bd8f2486cc2174562fb5de28f8dffa0d874
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
This commit is contained in:
Stephan Gerhold 2022-09-02 23:38:23 +02:00
parent d9b04423cf
commit cf0a75f04d
4 changed files with 29 additions and 2 deletions

View file

@ -0,0 +1,13 @@
#
# Copyright (c) 2022-2023, Stephan Gerhold <stephan@gerhold.net>
#
# SPDX-License-Identifier: BSD-3-Clause
#
ARM_ARCH_MAJOR := 7
ARM_CORTEX_A7 := yes
BL31_BASE ?= 0x87e80000
QTI_UART_NUM ?= 1
include plat/qti/msm8916/platform.mk

View file

@ -0,0 +1,7 @@
#
# Copyright (c) 2022-2023, Stephan Gerhold <stephan@gerhold.net>
#
# SPDX-License-Identifier: BSD-3-Clause
#
include plat/qti/msm8916/sp_min/sp_min-msm8916.mk

View file

@ -47,7 +47,11 @@ struct uartdm_gpios {
};
static const struct uartdm_gpios uartdm_gpio_map[] = {
#if defined(PLAT_msm8909)
{4, 5, 0x2}, {20, 21, 0x3},
#elif defined(PLAT_msm8916)
{0, 1, 0x2}, {4, 5, 0x2},
#endif
};
/*

View file

@ -17,7 +17,8 @@ PLAT_BL_COMMON_SOURCES := ${GICV2_SOURCES} \
plat/qti/msm8916/${ARCH}/msm8916_helpers.S \
plat/qti/msm8916/${ARCH}/uartdm_console.S
MSM8916_PM_SOURCES := lib/cpus/${ARCH}/cortex_a53.S \
MSM8916_CPU := $(if ${ARM_CORTEX_A7},cortex_a7,cortex_a53)
MSM8916_PM_SOURCES := lib/cpus/${ARCH}/${MSM8916_CPU}.S \
plat/common/plat_psci_common.c \
plat/qti/msm8916/msm8916_config.c \
plat/qti/msm8916/msm8916_cpu_boot.c \
@ -48,10 +49,11 @@ WARMBOOT_ENABLE_DCACHE_EARLY := 1
ENABLE_SPE_FOR_NS := 0
ENABLE_SVE_FOR_NS := 0
# Disable workarounds unnecessary for Cortex-A53
# Disable workarounds unnecessary for Cortex-A7/A53
WORKAROUND_CVE_2017_5715 := 0
WORKAROUND_CVE_2022_23960 := 0
ifeq (${MSM8916_CPU},cortex_a53)
# MSM8916 uses ARM Cortex-A53 r0p0 so likely all the errata apply
ERRATA_A53_819472 := 1
ERRATA_A53_824069 := 1
@ -62,6 +64,7 @@ ERRATA_A53_836870 := 1
ERRATA_A53_843419 := 1
ERRATA_A53_855873 := 0 # Workaround works only for >= r0p3
ERRATA_A53_1530924 := 1
endif
# Build config flags
# ------------------