Skip to content

Commit 3af0bec

Browse files
committed
CMake: Add Cortex-M55 and Cortex-M85 ports
1 parent 37f5068 commit 3af0bec

File tree

2 files changed

+120
-4
lines changed

2 files changed

+120
-4
lines changed

CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ if(NOT FREERTOS_PORT)
6262
" GCC_ARM_CM33_NONSECURE - Compiller: GCC Target: ARM Cortex-M33 non-secure\n"
6363
" GCC_ARM_CM33_SECURE - Compiller: GCC Target: ARM Cortex-M33 secure\n"
6464
" GCC_ARM_CM33_NTZ_NONSECURE - Compiller: GCC Target: ARM Cortex-M33 non-trustzone non-secure\n"
65+
" GCC_ARM_CM33_TFM - Compiller: GCC Target: ARM Cortex-M33 non-secure for TF-M\n"
66+
" GCC_ARM_CM55_NONSECURE - Compiller: GCC Target: ARM Cortex-M55 non-secure\n"
67+
" GCC_ARM_CM55_SECURE - Compiller: GCC Target: ARM Cortex-M55 secure\n"
68+
" GCC_ARM_CM55_NTZ_NONSECURE - Compiller: GCC Target: ARM Cortex-M55 non-trustzone non-secure\n"
69+
" GCC_ARM_CM55_TFM - Compiller: GCC Target: ARM Cortex-M55 non-secure for TF-M\n"
70+
" GCC_ARM_CM85_NONSECURE - Compiller: GCC Target: ARM Cortex-M85 non-secure\n"
71+
" GCC_ARM_CM85_SECURE - Compiller: GCC Target: ARM Cortex-M85 secure\n"
72+
" GCC_ARM_CM85_NTZ_NONSECURE - Compiller: GCC Target: ARM Cortex-M85 non-trustzone non-secure\n"
73+
" GCC_ARM_CM85_TFM - Compiller: GCC Target: ARM Cortex-M85 non-secure for TF-M\n"
6574
" GCC_ARM_CR5 - Compiller: GCC Target: ARM Cortex-R5\n"
6675
" GCC_ARM_CRX_NOGIC - Compiller: GCC Target: ARM Cortex-Rx no GIC\n"
6776
" GCC_ARM7_AT91FR40008 - Compiller: GCC Target: ARM7 Atmel AT91R40008\n"
@@ -115,6 +124,12 @@ if(NOT FREERTOS_PORT)
115124
" IAR_ARM_CM33_NONSECURE - Compiller: IAR Target: ARM Cortex-M33 non-secure\n"
116125
" IAR_ARM_CM33_SECURE - Compiller: IAR Target: ARM Cortex-M33 secure\n"
117126
" IAR_ARM_CM33_NTZ_NONSECURE - Compiller: IAR Target: ARM Cortex-M33 non-trustzone non-secure\n"
127+
" IAR_ARM_CM55_NONSECURE - Compiller: IAR Target: ARM Cortex-M55 non-secure\n"
128+
" IAR_ARM_CM55_SECURE - Compiller: IAR Target: ARM Cortex-M55 secure\n"
129+
" IAR_ARM_CM55_NTZ_NONSECURE - Compiller: IAR Target: ARM Cortex-M55 non-trustzone non-secure\n"
130+
" IAR_ARM_CM85_NONSECURE - Compiller: IAR Target: ARM Cortex-M85 non-secure\n"
131+
" IAR_ARM_CM85_SECURE - Compiller: IAR Target: ARM Cortex-M85 secure\n"
132+
" IAR_ARM_CM85_NTZ_NONSECURE - Compiller: IAR Target: ARM Cortex-M85 non-trustzone non-secure\n"
118133
" IAR_ARM_CRX_NOGIC - Compiller: IAR Target: ARM Cortex-Rx no GIC\n"
119134
" IAR_ATMEGA323 - Compiller: IAR Target: ATMega323\n"
120135
" IAR_ATMEL_SAM7S64 - Compiller: IAR Target: Atmel SAM7S64\n"

portable/CMakeLists.txt

Lines changed: 105 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ add_library(freertos_kernel_port STATIC
6060
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM0>:
6161
GCC/ARM_CM0/port.c>
6262

63+
# ARMv6-M / Cortex-M0 Raspberry PI RP2040 port for GCC
6364
$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:
6465
ThirdParty/GCC/RP2040/idle_task_static_memory.c
6566
ThirdParty/GCC/RP2040/port.c>
@@ -110,9 +111,49 @@ add_library(freertos_kernel_port STATIC
110111
GCC/ARM_CM33_NTZ/non_secure/port.c
111112
GCC/ARM_CM33_NTZ/non_secure/portasm.c>
112113

113-
# ARM Cortex-M33 TFM helper functions
114-
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_TFM>:
115-
ThirdParty/GCC/ARM_CM33_TFM/os_wrapper_freertos.c>
114+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_TFM>:
115+
GCC/ARM_CM33_NTZ/non_secure/port.c
116+
GCC/ARM_CM33_NTZ/non_secure/portasm.c
117+
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
118+
119+
# ARMv8.1-M ports for GCC
120+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:
121+
GCC/ARM_CM55/non_secure/port.c
122+
GCC/ARM_CM55/non_secure/portasm.c>
123+
124+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:
125+
GCC/ARM_CM55/secure/secure_context_port.c
126+
GCC/ARM_CM55/secure/secure_context.c
127+
GCC/ARM_CM55/secure/secure_heap.c
128+
GCC/ARM_CM55/secure/secure_init.c>
129+
130+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:
131+
GCC/ARM_CM55_NTZ/non_secure/port.c
132+
GCC/ARM_CM55_NTZ/non_secure/portasm.c>
133+
134+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:
135+
GCC/ARM_CM55_NTZ/non_secure/port.c
136+
GCC/ARM_CM55_NTZ/non_secure/portasm.c
137+
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
138+
139+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:
140+
GCC/ARM_CM85/non_secure/port.c
141+
GCC/ARM_CM85/non_secure/portasm.c>
142+
143+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:
144+
GCC/ARM_CM85/secure/secure_context_port.c
145+
GCC/ARM_CM85/secure/secure_context.c
146+
GCC/ARM_CM85/secure/secure_heap.c
147+
GCC/ARM_CM85/secure/secure_init.c>
148+
149+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:
150+
GCC/ARM_CM85_NTZ/non_secure/port.c
151+
GCC/ARM_CM85_NTZ/non_secure/portasm.c>
152+
153+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:
154+
GCC/ARM_CM85_NTZ/non_secure/port.c
155+
GCC/ARM_CM85_NTZ/non_secure/portasm.c
156+
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
116157

117158
# ARMv7-R ports for GCC
118159
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:
@@ -349,6 +390,35 @@ add_library(freertos_kernel_port STATIC
349390
IAR/ARM_CM33_NTZ/non_secure/port.c
350391
IAR/ARM_CM33_NTZ/non_secure/portasm.s>
351392

393+
# ARMv8.1-M ports for IAR EWARM
394+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:
395+
IAR/ARM_CM55/non_secure/port.c
396+
IAR/ARM_CM55/non_secure/portasm.s>
397+
398+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:
399+
IAR/ARM_CM55/secure/secure_context_port_asm.s
400+
IAR/ARM_CM55/secure/secure_context.c
401+
IAR/ARM_CM55/secure/secure_heap.c
402+
IAR/ARM_CM55/secure/secure_init.c>
403+
404+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:
405+
IAR/ARM_CM55_NTZ/non_secure/port.c
406+
IAR/ARM_CM55_NTZ/non_secure/portasm.s>
407+
408+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:
409+
IAR/ARM_CM85/non_secure/port.c
410+
IAR/ARM_CM85/non_secure/portasm.s>
411+
412+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:
413+
IAR/ARM_CM85/secure/secure_context_port_asm.s
414+
IAR/ARM_CM85/secure/secure_context.c
415+
IAR/ARM_CM85/secure/secure_heap.c
416+
IAR/ARM_CM85/secure/secure_init.c>
417+
418+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:
419+
IAR/ARM_CM85_NTZ/non_secure/port.c
420+
IAR/ARM_CM85_NTZ/non_secure/portasm.s>
421+
352422
# ARMv7-R Ports for IAR EWARM
353423
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:
354424
IAR/ARM_CRx_No_GIC/port.c
@@ -483,7 +553,6 @@ add_library(freertos_kernel_port STATIC
483553
oWatcom/16BitDOS/common/portcomn.c
484554
oWatcom/16BitDOS/PC/port.c>
485555

486-
487556
$<$<STREQUAL:${FREERTOS_PORT},PARADIGM_TERN_EE_LARGE>:
488557
Paradigm/Tern_EE/large_untested/port.c>
489558

@@ -597,13 +666,24 @@ if(
597666
FREERTOS_PORT STREQUAL "GCC_ARM_CM23_NTZ_NONSECURE" OR
598667
FREERTOS_PORT STREQUAL "GCC_ARM_CM23_NONSECURE" OR
599668
FREERTOS_PORT STREQUAL "GCC_ARM_CM33_NTZ_NONSECURE" OR
669+
FREERTOS_PORT STREQUAL "GCC_ARM_TFM" OR
600670
FREERTOS_PORT STREQUAL "GCC_ARM_CM33_NONSECURE" OR
671+
FREERTOS_PORT STREQUAL "GCC_ARM_CM55_NTZ_NONSECURE" OR
672+
FREERTOS_PORT STREQUAL "GCC_ARM_CM55_TFM" OR
673+
FREERTOS_PORT STREQUAL "GCC_ARM_CM55_NONSECURE" OR
674+
FREERTOS_PORT STREQUAL "GCC_ARM_CM85_NTZ_NONSECURE" OR
675+
FREERTOS_PORT STREQUAL "GCC_ARM_CM85_TFM" OR
676+
FREERTOS_PORT STREQUAL "GCC_ARM_CM85_NONSECURE" OR
601677
FREERTOS_PORT STREQUAL "IAR_ARM_CM4F_MPU" OR
602678
FREERTOS_PORT STREQUAL "RVDS_ARM_CM4_MPU" OR
603679
FREERTOS_PORT STREQUAL "IAR_ARM_CM23_NTZ_NONSECURE" OR
604680
FREERTOS_PORT STREQUAL "IAR_ARM_CM23_NONSECURE" OR
605681
FREERTOS_PORT STREQUAL "IAR_ARM_CM33_NTZ_NONSECURE" OR
606682
FREERTOS_PORT STREQUAL "IAR_ARM_CM33_NONSECURE"
683+
FREERTOS_PORT STREQUAL "IAR_ARM_CM55_NTZ_NONSECURE" OR
684+
FREERTOS_PORT STREQUAL "IAR_ARM_CM55_NONSECURE" OR
685+
FREERTOS_PORT STREQUAL "IAR_ARM_CM85_NTZ_NONSECURE" OR
686+
FREERTOS_PORT STREQUAL "IAR_ARM_CM85_NONSECURE"
607687
)
608688
target_sources(freertos_kernel_port PRIVATE Common/mpu_wrappers.c)
609689
endif()
@@ -665,6 +745,18 @@ target_include_directories(freertos_kernel_port PUBLIC
665745
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/non_secure>
666746
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33/secure>
667747
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
748+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM33_NTZ/non_secure>
749+
750+
# ARMv8.1-M ports for GCC
751+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/non_secure>
752+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55/secure>
753+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
754+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
755+
756+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/non_secure>
757+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/secure>
758+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
759+
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
668760

669761
# ARMv7-R ports for GCC
670762
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CR5>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CR5>
@@ -777,6 +869,15 @@ target_include_directories(freertos_kernel_port PUBLIC
777869
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33/secure>
778870
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM33_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM33_NTZ/non_secure>
779871

872+
# ARMv8.1-M ports for IAR EWARM
873+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/non_secure>
874+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55/secure>
875+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
876+
877+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/non_secure>
878+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/secure>
879+
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85_NTZ/non_secure>
880+
780881
# ARMv7-R Ports for IAR EWARM
781882
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CRX_NOGIC>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CRx_No_GIC>
782883

0 commit comments

Comments
 (0)