Skip to content

Commit 255b9b6

Browse files
committed
armv8-r: Add Arm Cortex-R82 non-MPU port
The goal of this commit is to add the GCC/ARMClang non-MPU port variant for ARM Cortex-R82 processor which is ARMv8-R AArch64 based. The work done is inspired by the GCC ARM_AARCH64 FreeRTOS port. This port has the following features: * Uses single security state (non TrustZone). * Supports SMP (Symmetric multi-processing). * Doesn't support Hypervisor (EL2). * Doesn't support neither PMSA (MPU) nor VMSA (MMU). Signed-off-by: Ahmed Ismail <[email protected]>
1 parent 7225fbc commit 255b9b6

File tree

7 files changed

+1622
-0
lines changed

7 files changed

+1622
-0
lines changed

.github/.cSpellWords.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ ldrbs
430430
LDRBS
431431
LDRNE
432432
ldsr
433+
ldxr
433434
lidt
434435
LINKR
435436
LJMP
@@ -505,6 +506,7 @@ movs
505506
movw
506507
MOVWF
507508
movx
509+
MPIDR
508510
MPLAB
509511
MPUCTRL
510512
MQTT
@@ -809,6 +811,7 @@ STTBRK
809811
STTDLY
810812
STTOUT
811813
STTTO
814+
stxr
812815
SVACC
813816
svcne
814817
SVDIS

.github/scripts/kernel_checker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
r'.*portable/.*/ARM_CM35*',
115115
r'.*portable/.*/ARM_CM55*',
116116
r'.*portable/.*/ARM_CM85*',
117+
r'.*portable/.*/ARM_CR82*',
117118
]
118119

119120
KERNEL_HEADER = [

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ if(NOT FREERTOS_PORT)
8787
" GCC_ARM_CR5 - Compiler: GCC Target: ARM Cortex-R5\n"
8888
" GCC_ARM_CRX_MPU - Compiler: GCC Target: ARM Cortex-Rx with MPU\n"
8989
" GCC_ARM_CRX_NOGIC - Compiler: GCC Target: ARM Cortex-Rx no GIC\n"
90+
" GCC_ARM_CR82 - Compiler: GCC Target: ARM Cortex-R82\n"
9091
" GCC_ARM7_AT91FR40008 - Compiler: GCC Target: ARM7 Atmel AT91R40008\n"
9192
" GCC_ARM7_AT91SAM7S - Compiler: GCC Target: ARM7 Atmel AT91SAM7S\n"
9293
" GCC_ARM7_LPC2000 - Compiler: GCC Target: ARM7 LPC2000\n"

portable/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ add_library(freertos_kernel_port OBJECT
218218
GCC/ARM_CRx_No_GIC/port.c
219219
GCC/ARM_CRx_No_GIC/portASM.S>
220220

221+
# ARMv8-R ports for GCC
222+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR82>:
223+
GCC/ARM_CR82/port.c
224+
GCC/ARM_CR82/portASM.S>
225+
221226
# ARMv4T ARM7TDMI ports for GCC
222227
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:
223228
GCC/ARM7_AT91FR40008/port.c
@@ -963,6 +968,9 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
963968
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_MPU>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_MPU>
964969
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CRx_No_GIC>
965970

971+
# ARMv8-R ports for GCC
972+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR82>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR82>
973+
966974
# ARMv4T ARM7TDMI ports for GCC
967975
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91FR40008>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91FR40008>
968976
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM7_AT91SAM7S>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM7_AT91SAM7S>

0 commit comments

Comments
 (0)