[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 24/36] target/arm: Expose M-profile register bank index definition
|
From: |
Peter Maydell |
|
Subject: |
[PULL 24/36] target/arm: Expose M-profile register bank index definitions |
|
Date: |
Fri, 26 Jan 2024 14:33:29 +0000 |
From: Philippe Mathieu-Daudé <philmd@linaro.org>
The ARMv7M QDev container accesses the QDev SysTickState
by its secure/non-secure bank index. In order to make
the "hw/intc/armv7m_nvic.h" header target-agnostic in
the next commit, first move the M-profile bank index
definitions to "target/arm/cpu-qom.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240118200643.29037-16-philmd@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target/arm/cpu-qom.h | 15 +++++++++++++++
target/arm/cpu.h | 15 ---------------
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/target/arm/cpu-qom.h b/target/arm/cpu-qom.h
index f795994135f..77bbc1f13c9 100644
--- a/target/arm/cpu-qom.h
+++ b/target/arm/cpu-qom.h
@@ -36,4 +36,19 @@ DECLARE_CLASS_CHECKERS(AArch64CPUClass, AARCH64_CPU,
#define ARM_CPU_TYPE_SUFFIX "-" TYPE_ARM_CPU
#define ARM_CPU_TYPE_NAME(name) (name ARM_CPU_TYPE_SUFFIX)
+/* For M profile, some registers are banked secure vs non-secure;
+ * these are represented as a 2-element array where the first element
+ * is the non-secure copy and the second is the secure copy.
+ * When the CPU does not have implement the security extension then
+ * only the first element is used.
+ * This means that the copy for the current security state can be
+ * accessed via env->registerfield[env->v7m.secure] (whether the security
+ * extension is implemented or not).
+ */
+enum {
+ M_REG_NS = 0,
+ M_REG_S = 1,
+ M_REG_NUM_BANKS = 2,
+};
+
#endif
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 41659d0ef15..d6a79482adb 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -73,21 +73,6 @@
#define ARMV7M_EXCP_PENDSV 14
#define ARMV7M_EXCP_SYSTICK 15
-/* For M profile, some registers are banked secure vs non-secure;
- * these are represented as a 2-element array where the first element
- * is the non-secure copy and the second is the secure copy.
- * When the CPU does not have implement the security extension then
- * only the first element is used.
- * This means that the copy for the current security state can be
- * accessed via env->registerfield[env->v7m.secure] (whether the security
- * extension is implemented or not).
- */
-enum {
- M_REG_NS = 0,
- M_REG_S = 1,
- M_REG_NUM_BANKS = 2,
-};
-
/* ARM-specific interrupt pending bits. */
#define CPU_INTERRUPT_FIQ CPU_INTERRUPT_TGT_EXT_1
#define CPU_INTERRUPT_VIRQ CPU_INTERRUPT_TGT_EXT_2
--
2.34.1
- [PULL 14/36] target/arm/cpu-features: Include missing 'hw/registerfields.h' header, (continued)
- [PULL 14/36] target/arm/cpu-features: Include missing 'hw/registerfields.h' header, Peter Maydell, 2024/01/26
- [PULL 16/36] target/arm/cpregs: Include missing 'kvm-consts.h' header, Peter Maydell, 2024/01/26
- [PULL 17/36] target/arm: Rename arm_cpu_mp_affinity, Peter Maydell, 2024/01/26
- [PULL 18/36] target/arm: Create arm_cpu_mp_affinity, Peter Maydell, 2024/01/26
- [PULL 19/36] target/arm: Expose arm_cpu_mp_affinity() in 'multiprocessing.h' header, Peter Maydell, 2024/01/26
- [PULL 21/36] hw/cpu/a9mpcore: Build it only once, Peter Maydell, 2024/01/26
- [PULL 23/36] hw/misc/xlnx-versal-crl: Build it only once, Peter Maydell, 2024/01/26
- [PULL 22/36] hw/misc/xlnx-versal-crl: Include generic 'cpu-qom.h' instead of 'cpu.h', Peter Maydell, 2024/01/26
- [PULL 25/36] hw/arm/armv7m: Make 'hw/intc/armv7m_nvic.h' a target agnostic header, Peter Maydell, 2024/01/26
- [PULL 30/36] fsl-imx6ul: Add various missing unimplemented devices, Peter Maydell, 2024/01/26
- [PULL 24/36] target/arm: Expose M-profile register bank index definitions,
Peter Maydell <=
- [PULL 27/36] target/arm: Move e2h_access() helper around, Peter Maydell, 2024/01/26
- [PULL 26/36] target/arm: Move ARM_CPU_IRQ/FIQ definitions to 'cpu-qom.h' header, Peter Maydell, 2024/01/26
- [PULL 28/36] target/arm: Move GTimer definitions to new 'gtimer.h' header, Peter Maydell, 2024/01/26
- [PULL 29/36] hw/arm: Build various units only once, Peter Maydell, 2024/01/26
- [PULL 32/36] hw/char/imx_serial: Implement receive FIFO and ageing timer, Peter Maydell, 2024/01/26
- [PULL 36/36] hw/arm: add PCIe to Freescale i.MX6, Peter Maydell, 2024/01/26
- [PULL 31/36] docs/system/arm/virt.rst: Add note on CPU features off by default, Peter Maydell, 2024/01/26
- [PULL 33/36] target/arm: Fix A64 scalar SQSHRN and SQRSHRN, Peter Maydell, 2024/01/26
- [PULL 35/36] target/arm: Fix incorrect aa64_tidcp1 feature check, Peter Maydell, 2024/01/26
- [PULL 34/36] bswap.h: Fix const_le64() macro, Peter Maydell, 2024/01/26