Skip to content

Commit 0d6fa4d

Browse files
ioannisggalak
authored andcommitted
arch: arm: define Cortex-M23, Cortex-M33 CPUs
This commit defines the Kconfig options for ARM Cortex-M23 and Cortex-M33 CPUs. It also udpates the generic memory map for M23 and M33 implementations. Signed-off-by: Ioannis Glaropoulos <[email protected]>
1 parent a0a03d7 commit 0d6fa4d

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

arch/arm/core/cortex_m/Kconfig

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,20 @@ config CPU_CORTEX_M4
135135
help
136136
This option signifies the use of a Cortex-M4 CPU
137137

138+
config CPU_CORTEX_M23
139+
bool
140+
# Omit prompt to signify "hidden" option
141+
select ARMV6_M_ARMV8_M_BASELINE
142+
help
143+
This option signifies the use of a Cortex-M23 CPU
144+
145+
config CPU_CORTEX_M33
146+
bool
147+
# Omit prompt to signify "hidden" option
148+
select ARMV7_M_ARMV8_M_MAINLINE
149+
help
150+
This option signifies the use of a Cortex-M33 CPU
151+
138152
config CPU_CORTEX_M7
139153
bool
140154
# Omit prompt to signify "hidden" option
@@ -197,7 +211,7 @@ config XIP
197211
default y
198212
endmenu
199213

200-
menu "ARM Cortex-M0/M0+/M3/M4/M7 options"
214+
menu "ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 options"
201215
depends on ARMV6_M_ARMV8_M_BASELINE || ARMV7_M_ARMV8_M_MAINLINE
202216

203217
config GEN_ISR_TABLES

include/arch/arm/cortex_m/cmsis.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ typedef enum {
115115
#define __CM4_REV 0
116116
#elif defined(CONFIG_CPU_CORTEX_M7)
117117
#define __CM7_REV 0
118+
#elif defined(CONFIG_CPU_CORTEX_M23)
119+
#define __CM23_REV 0
120+
#elif defined(CONFIG_CPU_CORTEX_M33)
121+
#define __CM33_REV 0
118122
#else
119123
#error "Unknown Cortex-M device"
120124
#endif
@@ -138,6 +142,10 @@ typedef enum {
138142
#include <core_cm4.h>
139143
#elif defined(CONFIG_CPU_CORTEX_M7)
140144
#include <core_cm7.h>
145+
#elif defined(CONFIG_CPU_CORTEX_M23)
146+
#include <core_cm23.h>
147+
#elif defined(CONFIG_CPU_CORTEX_M33)
148+
#include <core_cm33.h>
141149
#else
142150
#error "Unknown Cortex-M device"
143151
#endif

include/arch/arm/cortex_m/memory_map.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@
6464
#define _PPB_INT_RSVD_1 0xE0003000
6565
#define _PPB_INT_SCS 0xE000E000
6666
#define _PPB_INT_RSVD_2 0xE000F000
67+
#elif defined(CONFIG_CPU_CORTEX_M23) || defined(CONFIG_CPU_CORTEX_M33)
68+
#define _PPB_INT_RSVD_0 0xE0000000
69+
#define _PPB_INT_SCS 0xE000E000
70+
#define _PPB_INT_SCB 0xE000ED00
71+
#define _PPB_INT_RSVD_1 0xE002E000
6772
#else
6873
#error Unknown CPU
6974
#endif
@@ -72,13 +77,19 @@
7277
/* 0xe0000000 -> 0xe00fffff: private peripheral bus */
7378
/* 0xe0040000 -> 0xe00fffff: external [768K] */
7479
#define _PPB_EXT_BASE_ADDR 0xE0040000
75-
#if defined(CONFIG_CPU_CORTEX_M0) || defined(CONFIG_CPU_CORTEX_M0PLUS)
80+
#if defined(CONFIG_CPU_CORTEX_M0) || defined(CONFIG_CPU_CORTEX_M0PLUS) \
81+
|| defined(CONFIG_CPU_CORTEX_M23)
7682
#elif defined(CONFIG_CPU_CORTEX_M3) || defined(CONFIG_CPU_CORTEX_M4)
7783
#define _PPB_EXT_TPIU 0xE0040000
7884
#define _PPB_EXT_ETM 0xE0041000
7985
#define _PPB_EXT_PPB 0xE0042000
8086
#define _PPB_EXT_ROM_TABLE 0xE00FF000
8187
#define _PPB_EXT_END_ADDR 0xE00FFFFF
88+
#elif defined(CONFIG_CPU_CORTEX_M33)
89+
#undef _PPB_EXT_BASE_ADDR
90+
#define _PPB_EXT_BASE_ADDR 0xE0044000
91+
#define _PPB_EXT_ROM_TABLE 0xE00FF000
92+
#define _PPB_EXT_END_ADDR 0xE00FFFFF
8293
#elif defined(CONFIG_CPU_CORTEX_M7)
8394
#define _PPB_EXT_BASE_ADDR 0xE0040000
8495
#define _PPB_EXT_RSVD_TPIU 0xE0040000

0 commit comments

Comments
 (0)