Skip to content

Commit 8d4f7cb

Browse files
committed
Add variants that detect TrustZone non-secure domain using Dtz and Dsecure tags
1 parent d55e0d5 commit 8d4f7cb

1 file changed

Lines changed: 202 additions & 0 deletions

File tree

ARM.CMSIS-FreeRTOS.pdsc

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,32 @@
154154
<require Dcore="Cortex-A9" Dfpu="DP_FPU"/>
155155
</condition>
156156

157+
<!-- TrustZone -->
158+
<condition id="No TrustZone">
159+
<description>No TrustZone</description>
160+
<require Dtz="NO_TZ"/>
161+
</condition>
162+
<condition id="TZ Disabled">
163+
<description>TrustZone (Disabled)</description>
164+
<require Dtz="TZ"/>
165+
<require Dsecure="TZ-disabled"/>
166+
</condition>
167+
<condition id="TZ Secure Only">
168+
<description>TrustZone (Secure Only)</description>
169+
<require Dtz="TZ"/>
170+
<require Dsecure="Secure-only"/>
171+
</condition>
172+
<condition id="TZ Secure">
173+
<description>TrustZone (Secure)</description>
174+
<require Dtz="TZ"/>
175+
<require Dsecure="Secure"/>
176+
</condition>
177+
<condition id="TZ Non-secure">
178+
<description>TrustZone (Non-secure)</description>
179+
<require Dtz="TZ"/>
180+
<require Dsecure="Non-secure"/>
181+
</condition>
182+
157183
<!-- Arm Compiler 6 and GCC -->
158184
<condition id="CM0_AC6_GCC">
159185
<description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler 6 and GCC</description>
@@ -598,6 +624,19 @@
598624
<condition id="FreeRTOS Core CM">
599625
<description>Requirements for FreeRTOS Core for Cortex-M</description>
600626
<require condition="FreeRTOS Port Cortex-M"/>
627+
<accept condition="No TrustZone"/>
628+
<accept condition="TZ Disabled"/>
629+
<accept condition="TZ Secure Only"/>
630+
<accept condition="TZ Secure"/>
631+
632+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
633+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
634+
</condition>
635+
636+
<condition id="FreeRTOS Core CM TZ_NS">
637+
<description>Requirements for FreeRTOS Core for Cortex-M with TrustZone in Non-Secure Domain</description>
638+
<require condition="FreeRTOS Port Cortex-M v8 TZ"/>
639+
<require condition="TZ Non-secure"/>
601640

602641
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
603642
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
@@ -606,6 +645,22 @@
606645
<condition id="FreeRTOS Core CM MPU">
607646
<description>Requirements for FreeRTOS Core with MPU support for Cortex-M</description>
608647
<require condition="FreeRTOS Port Cortex-M MPU"/>
648+
<accept condition="No TrustZone"/>
649+
<accept condition="TZ Disabled"/>
650+
<accept condition="TZ Secure Only"/>
651+
<accept condition="TZ Secure"/>
652+
653+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
654+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
655+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
656+
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
657+
<require condition="FreeRTOS Message or Stream Buffer API"/>
658+
</condition>
659+
660+
<condition id="FreeRTOS Core CM MPU TZ_NS">
661+
<description>Requirements for FreeRTOS Core for Cortex-M with MPU support and TrustZone in Non-Secure Domain</description>
662+
<require condition="FreeRTOS Port Cortex-M v8 TZ"/>
663+
<require condition="TZ Non-secure"/>
609664

610665
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
611666
<require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
@@ -858,6 +913,72 @@
858913
</files>
859914
</component>
860915

916+
<component Cgroup="Core" Cvariant="Cortex-M" condition="FreeRTOS Core CM TZ_NS">
917+
<description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M in Non-Secure Domain (TrustZone)</description>
918+
<RTE_Components_h>
919+
#define RTE_RTOS_FreeRTOS_CORE /* RTOS FreeRTOS Core */
920+
#define RTE_RTOS_FreeRTOS_CORE_TZ_NS /* RTOS FreeRTOS Core with TrustZone Non-Secure Domain */
921+
</RTE_Components_h>
922+
<files>
923+
<file category="include" name="Source/include/"/>
924+
925+
<file category="header" name="Source/include/FreeRTOS.h"/>
926+
<file category="header" name="Source/include/queue.h"/>
927+
<file category="header" name="Source/include/semphr.h"/>
928+
<file category="header" name="Source/include/task.h"/>
929+
930+
<file category="source" name="Source/list.c"/>
931+
<file category="source" name="Source/queue.c"/>
932+
<file category="source" name="Source/tasks.c"/>
933+
934+
<file category="include" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/secure/"/>
935+
<file category="include" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/"/>
936+
<file category="source" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
937+
<file category="source" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
938+
<file category="include" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/secure/"/>
939+
<file category="include" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/"/>
940+
<file category="source" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
941+
<file category="source" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
942+
<file category="include" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/secure/"/>
943+
<file category="include" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/"/>
944+
<file category="source" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/port.c"/>
945+
<file category="source" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/portasm.c"/>
946+
<file category="include" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/secure/"/>
947+
<file category="include" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/"/>
948+
<file category="source" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/port.c"/>
949+
<file category="source" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/portasm.c"/>
950+
<file category="include" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/secure/"/>
951+
<file category="include" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/"/>
952+
<file category="source" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/port.c"/>
953+
<file category="source" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/portasm.c"/>
954+
955+
<file category="include" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/secure/"/>
956+
<file category="include" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/"/>
957+
<file category="source" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/port.c"/>
958+
<file category="sourceAsm" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/portasm.s"/>
959+
<file category="include" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/secure/"/>
960+
<file category="include" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/"/>
961+
<file category="source" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/port.c"/>
962+
<file category="sourceAsm" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/portasm.s"/>
963+
<file category="include" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/secure/"/>
964+
<file category="include" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/"/>
965+
<file category="source" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/port.c"/>
966+
<file category="sourceAsm" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/portasm.s"/>
967+
<file category="include" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/secure/"/>
968+
<file category="include" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/"/>
969+
<file category="source" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/port.c"/>
970+
<file category="sourceAsm" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/portasm.s"/>
971+
<file category="include" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/secure/"/>
972+
<file category="include" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/"/>
973+
<file category="source" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/port.c"/>
974+
<file category="sourceAsm" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/portasm.s"/>
975+
976+
<file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
977+
<file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
978+
<file category="other" name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
979+
</files>
980+
</component>
981+
861982
<component Cgroup="Core" Cvariant="Cortex-M MPU" condition="FreeRTOS Core CM MPU">
862983
<description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using MPU</description>
863984
<RTE_Components_h>
@@ -943,6 +1064,86 @@
9431064
</files>
9441065
</component>
9451066

1067+
<component Cgroup="Core" Cvariant="Cortex-M MPU" condition="FreeRTOS Core CM MPU TZ_NS">
1068+
<description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using MPU in Non-Secure Domain (TrustZone)</description>
1069+
<RTE_Components_h>
1070+
#define RTE_RTOS_FreeRTOS_CORE /* RTOS FreeRTOS Core */
1071+
#define RTE_RTOS_FreeRTOS_CORE_MPU /* RTOS FreeRTOS Core with MPU support */
1072+
#define RTE_RTOS_FreeRTOS_CORE_TZ_NS /* RTOS FreeRTOS Core with TrustZone Non-Secure Domain */
1073+
</RTE_Components_h>
1074+
<files>
1075+
<file category="include" name="Source/include/"/>
1076+
1077+
<file category="header" name="Source/include/FreeRTOS.h"/>
1078+
<file category="header" name="Source/include/queue.h"/>
1079+
<file category="header" name="Source/include/semphr.h"/>
1080+
<file category="header" name="Source/include/task.h"/>
1081+
1082+
<file category="source" name="Source/list.c"/>
1083+
<file category="source" name="Source/queue.c"/>
1084+
<file category="source" name="Source/tasks.c"/>
1085+
<file category="source" name="Source/portable/Common/mpu_wrappers.c"/>
1086+
<file category="source" name="Source/portable/Common/mpu_wrappers_v2.c"/>
1087+
1088+
<file category="include" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/secure/"/>
1089+
<file category="include" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/"/>
1090+
<file category="source" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
1091+
<file category="source" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
1092+
<file category="source" condition="CM23_AC6_GCC" name="Source/portable/GCC/ARM_CM23/non_secure/mpu_wrappers_v2_asm.c"/>
1093+
<file category="include" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/secure/"/>
1094+
<file category="include" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/"/>
1095+
<file category="source" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
1096+
<file category="source" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
1097+
<file category="source" condition="CM33_AC6_GCC" name="Source/portable/GCC/ARM_CM33/non_secure/mpu_wrappers_v2_asm.c"/>
1098+
<file category="include" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/secure/"/>
1099+
<file category="include" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/"/>
1100+
<file category="source" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/port.c"/>
1101+
<file category="source" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/portasm.c"/>
1102+
<file category="source" condition="CM35P_AC6_GCC" name="Source/portable/GCC/ARM_CM35P/non_secure/mpu_wrappers_v2_asm.c"/>
1103+
<file category="include" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/secure/"/>
1104+
<file category="include" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/"/>
1105+
<file category="source" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/port.c"/>
1106+
<file category="source" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/portasm.c"/>
1107+
<file category="source" condition="CM55_AC6_GCC" name="Source/portable/GCC/ARM_CM55/non_secure/mpu_wrappers_v2_asm.c"/>
1108+
<file category="include" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/secure/"/>
1109+
<file category="include" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/"/>
1110+
<file category="source" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/port.c"/>
1111+
<file category="source" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/portasm.c"/>
1112+
<file category="source" condition="CM85_AC6_GCC" name="Source/portable/GCC/ARM_CM85/non_secure/mpu_wrappers_v2_asm.c"/>
1113+
1114+
<file category="include" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/secure/"/>
1115+
<file category="include" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/"/>
1116+
<file category="source" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/port.c"/>
1117+
<file category="sourceAsm" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/portasm.s"/>
1118+
<file category="sourceAsm" condition="CM23_IAR" name="Source/portable/IAR/ARM_CM23/non_secure/mpu_wrappers_v2_asm.S"/>
1119+
<file category="include" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/secure/"/>
1120+
<file category="include" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/"/>
1121+
<file category="source" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/port.c"/>
1122+
<file category="sourceAsm" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/portasm.s"/>
1123+
<file category="sourceAsm" condition="CM33_IAR" name="Source/portable/IAR/ARM_CM33/non_secure/mpu_wrappers_v2_asm.S"/>
1124+
<file category="include" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/secure/"/>
1125+
<file category="include" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/"/>
1126+
<file category="source" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/port.c"/>
1127+
<file category="sourceAsm" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/portasm.s"/>
1128+
<file category="sourceAsm" condition="CM35P_IAR" name="Source/portable/IAR/ARM_CM35P/non_secure/mpu_wrappers_v2_asm.S"/>
1129+
<file category="include" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/secure/"/>
1130+
<file category="include" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/"/>
1131+
<file category="source" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/port.c"/>
1132+
<file category="sourceAsm" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/portasm.s"/>
1133+
<file category="sourceAsm" condition="CM55_IAR" name="Source/portable/IAR/ARM_CM55/non_secure/mpu_wrappers_v2_asm.S"/>
1134+
<file category="include" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/secure/"/>
1135+
<file category="include" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/"/>
1136+
<file category="source" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/port.c"/>
1137+
<file category="sourceAsm" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/portasm.s"/>
1138+
<file category="sourceAsm" condition="CM85_IAR" name="Source/portable/IAR/ARM_CM85/non_secure/mpu_wrappers_v2_asm.S"/>
1139+
1140+
<file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
1141+
<file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
1142+
<file category="other" name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
1143+
</files>
1144+
</component>
1145+
1146+
<!-- NOTE: This component variant will be deprecated (use RTOS&FreeRTOS:Core&Cortex-M) -->
9461147
<component Cgroup="Core" Cvariant="Cortex-M Non-Secure" condition="FreeRTOS Core TZ">
9471148
<description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using Non-Secure Domain (TrustZone)</description>
9481149
<RTE_Components_h>
@@ -1009,6 +1210,7 @@
10091210
</files>
10101211
</component>
10111212

1213+
<!-- NOTE: This component variant will be deprecated (use RTOS&FreeRTOS:Core&Cortex-M MPU) -->
10121214
<component Cgroup="Core" Cvariant="Cortex-M Non-Secure MPU" condition="FreeRTOS Core TZ MPU">
10131215
<description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using Non-Secure Domain (TrustZone) and MPU</description>
10141216
<RTE_Components_h>

0 commit comments

Comments
 (0)