From 38dc87d4d99e3979cb8463b545a161b77cf92138 Mon Sep 17 00:00:00 2001 From: Immo Birnbaum Date: Thu, 15 Jul 2021 10:16:17 +0200 Subject: [PATCH] arch: arm: core: aarch32: Add ARMv7-A/Cortex-A(9) related Kconfig items Add the ARMV7_A, CPU_AARCH32_CORTEX_A and CPU_CORTEX_A9 configuration items. Signed-off-by: Immo Birnbaum --- arch/arm/core/aarch32/Kconfig | 11 +++++ arch/arm/core/aarch32/cortex_a_r/Kconfig | 62 ++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/arch/arm/core/aarch32/Kconfig b/arch/arm/core/aarch32/Kconfig index 1fe06790b5..38dfab0d0e 100644 --- a/arch/arm/core/aarch32/Kconfig +++ b/arch/arm/core/aarch32/Kconfig @@ -36,6 +36,17 @@ config CPU_CORTEX_R help This option signifies the use of a CPU of the Cortex-R family. +config CPU_AARCH32_CORTEX_A + bool + select CPU_CORTEX + select CPU_HAS_MMU + select HAS_CMSIS_CORE + select HAS_FLASH_LOAD_OFFSET + select ARCH_HAS_EXTRA_EXCEPTION_INFO + select ARCH_HAS_NOCACHE_MEMORY_SUPPORT + help + This option signifies the use of a CPU of the Cortex-A family. + config ISA_THUMB2 bool help diff --git a/arch/arm/core/aarch32/cortex_a_r/Kconfig b/arch/arm/core/aarch32/cortex_a_r/Kconfig index c55f6a0877..a620715455 100644 --- a/arch/arm/core/aarch32/cortex_a_r/Kconfig +++ b/arch/arm/core/aarch32/cortex_a_r/Kconfig @@ -1,15 +1,67 @@ -# ARM Cortex-R platform configuration options +# ARM Cortex-A and Cortex-R platform configuration options # Copyright (c) 2018 Marvell # Copyright (c) 2018 Lexmark International, Inc. +# Copyright (c) 2021 Weidmueller Interface GmbH & Co. KG +# # SPDX-License-Identifier: Apache-2.0 # NOTE: We have the specific core implementations first and outside of the -# if CPU_CORTEX_R block so that SoCs can select which core they are using -# without having to select all the options related to that core. Everything -# else is captured inside the if CPU_CORTEX_R block so they are not exposed -# if one selects a different ARM Cortex Family (Cortex-A or Cortex-M) +# if CPU_AARCH32_CORTEX_A / if CPU_CORTEX_R block so that SoCs can select +# which core they are using without having to select all the options related +# to that core. Everything else is captured inside the if CPU_CORTEX_A / if +# CPU_CORTEX_R blocks so they are not exposed if one selects a different ARM +# Cortex Family (Cortex-M). +config CPU_CORTEX_A9 + bool + select CPU_AARCH32_CORTEX_A + select ARMV7_A + help + This option signifies the use of a Cortex-A9 CPU. + +if CPU_AARCH32_CORTEX_A + +config ARMV7_A + bool + select ATOMIC_OPERATIONS_BUILTIN + select ISA_ARM + +config ARMV7_EXCEPTION_STACK_SIZE + int "Undefined Instruction and Abort stack size (in bytes)" + default 256 + help + This option specifies the size of the stack used by the undefined + instruction and data abort exception handlers. + +config ARMV7_FIQ_STACK_SIZE + int "FIQ stack size (in bytes)" + default 256 + help + This option specifies the size of the stack used by the FIQ handler. + +config ARMV7_SVC_STACK_SIZE + int "SVC stack size (in bytes)" + default 512 + help + This option specifies the size of the stack used by the SVC handler. + +config ARMV7_SYS_STACK_SIZE + int "SYS stack size (in bytes)" + default 1024 + help + This option specifies the size of the stack used by the system mode. + +config RUNTIME_NMI + default y + +config GEN_ISR_TABLES + default y + +config GEN_IRQ_VECTOR_TABLE + default n + +endif # CPU_AARCH32_CORTEX_A config CPU_CORTEX_R4 bool