@@ -26,6 +26,66 @@ config CPU_CORTEX_M
26
26
help
27
27
This option signifies the use of a CPU of the Cortex-M family.
28
28
29
+ config CPU_CORTEX_R
30
+ bool
31
+ select CPU_CORTEX
32
+ select ARCH_HAS_CUSTOM_SWAP_TO_MAIN
33
+ select HAS_FLASH_LOAD_OFFSET
34
+ select HAS_DTS
35
+ select ARCH_HAS_STACK_PROTECTION if ARM_CORE_MPU
36
+ select ARCH_HAS_USERSPACE if ARM_CORE_MPU
37
+ help
38
+ This option signifies the use of a CPU of the Cortex-R family.
39
+
40
+ config ISA_THUMB2
41
+ bool
42
+ help
43
+ From: http://www.arm.com/products/processors/technologies/instruction-set-architectures.php
44
+
45
+ Thumb-2 technology is the instruction set underlying the ARM Cortex
46
+ architecture which provides enhanced levels of performance, energy
47
+ efficiency, and code density for a wide range of embedded
48
+ applications.
49
+
50
+ Thumb-2 technology builds on the success of Thumb, the innovative
51
+ high code density instruction set for ARM microprocessor cores, to
52
+ increase the power of the ARM microprocessor core available to
53
+ developers of low cost, high performance systems.
54
+
55
+ The technology is backwards compatible with existing ARM and Thumb
56
+ solutions, while significantly extending the features available to
57
+ the Thumb instructions set. This allows more of the application to
58
+ benefit from the best in class code density of Thumb.
59
+
60
+ For performance optimized code Thumb-2 technology uses 31 percent
61
+ less memory to reduce system cost, while providing up to 38 percent
62
+ higher performance than existing high density code, which can be used
63
+ to prolong battery-life or to enrich the product feature set. Thumb-2
64
+ technology is featured in the processor, and in all ARMv7
65
+ architecture-based processors.
66
+
67
+ config ISA_ARM
68
+ bool
69
+ help
70
+ From: https://developer.arm.com/products/architecture/instruction-sets/a32-and-t32-instruction-sets
71
+
72
+ A32 instructions, known as Arm instructions in pre-Armv8 architectures,
73
+ are 32 bits wide, and are aligned on 4-byte boundaries. A32 instructions
74
+ are supported by both A-profile and R-profile architectures.
75
+
76
+ A32 was traditionally used in applications requiring the highest
77
+ performance, or for handling hardware exceptions such as interrupts and
78
+ processor start-up. Much of its functionality was subsumed into T32 with
79
+ the introduction of Thumb-2 technology.
80
+
81
+ config DATA_ENDIANNESS_LITTLE
82
+ bool
83
+ default y if CPU_CORTEX
84
+ help
85
+ This is driven by the processor implementation, since it is fixed in
86
+ hardware. The board should set this value to 'n' if the data is
87
+ implemented as big endian.
88
+
29
89
config CPU_HAS_SYSTICK
30
90
bool
31
91
# Omit prompt to signify "hidden" option
@@ -94,6 +154,38 @@ config ARM_NONSECURE_FIRMWARE
94
154
resources of the Cortex-M MCU, and, therefore, it shall avoid
95
155
accessing them.
96
156
157
+ config STACK_ALIGN_DOUBLE_WORD
158
+ bool "Align stacks on double-words (8 octets)"
159
+ default y
160
+ help
161
+ This is needed to conform to AAPCS, the procedure call standard for
162
+ the ARM. It wastes stack space.
163
+
164
+ config RUNTIME_NMI
165
+ bool
166
+ prompt "Attach an NMI handler at runtime"
167
+ select REBOOT
168
+ help
169
+ The kernel provides a simple NMI handler that simply hangs in a tight
170
+ loop if triggered. This fills the requirement that there must be an
171
+ NMI handler installed when the CPU boots. If a custom handler is
172
+ needed, enable this option and attach it via _NmiHandlerSet().
173
+
174
+ config FAULT_DUMP
175
+ int "Fault dump level"
176
+ default 2
177
+ range 0 2
178
+ help
179
+ Different levels for display information when a fault occurs.
180
+
181
+ 2: The default. Display specific and verbose information. Consumes
182
+ the most memory (long strings).
183
+
184
+ 1: Display general and short information. Consumes less memory
185
+ (short strings).
186
+
187
+ 0: Off.
188
+
97
189
menu "Architecture Floating Point Options"
98
190
depends on CPU_HAS_FPU
99
191
@@ -122,6 +214,7 @@ endchoice
122
214
endmenu
123
215
124
216
source "arch/arm/core/cortex_m/Kconfig"
217
+ source "arch/arm/core/cortex_r/Kconfig"
125
218
126
219
if CPU_HAS_MPU
127
220
source "arch/arm/core/cortex_m/mpu/Kconfig"
0 commit comments