@@ -8,7 +8,6 @@ project(arm_executor_runner)
8
8
9
9
option (SEMIHOSTING "Enable semihosting" OFF )
10
10
option (ET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE "Set ET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE to specify memory alloction pool size" OFF )
11
- option (ET_ARM_BAREMETAL_TEMP_ALLOCATOR_POOL_SIZE "Set ET_ARM_BAREMETAL_TEMP_ALLOCATOR_POOL_SIZE to specify temp alloction pool size" OFF )
12
11
option (ET_BUNDLE_IO "Set to compile in BundleIO support" OFF )
13
12
option (ET_ATOL "Set atol to use for BundleIO testing" OFF )
14
13
option (ET_RTOL "Set rtol to use for BundleIO testing" OFF )
@@ -99,20 +98,45 @@ if(NOT ${SEMIHOSTING})
99
98
get_filename_component (ET_PTE_FILE_PATH ${ET_PTE_FILE_PATH} REALPATH )
100
99
endif ()
101
100
101
+ if (SYSTEM_CONFIG MATCHES "Ethos_U55" )
102
+ add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-300 target )
103
+ elseif (SYSTEM_CONFIG MATCHES "Ethos_U85" )
104
+ add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-320 target )
105
+ else ()
106
+ message (FATAL_ERROR "Unsupported SYSTEM_CONFIG ${SYSTEM_CONFIG} ." )
107
+ endif ()
102
108
109
+ if (MEMORY_MODE MATCHES "Dedicated_Sram" )
110
+ target_compile_definitions (ethosu_target_common INTERFACE
111
+ ETHOSU_MODEL=1
112
+ ETHOSU_ARENA=1 )
113
+ elseif (MEMORY_MODE MATCHES "Shared_Sram" OR MEMORY_MODE MATCHES "Sram_Only" )
114
+ target_compile_definitions (ethosu_target_common INTERFACE
115
+ ETHOSU_MODEL=1
116
+ ETHOSU_ARENA=0 )
117
+ else ()
118
+ message (FATAL_ERROR "Unsupported MEMORY_MODE ${MEMORY_MODE} . Memory_mode can be Shared_Sram, Sram_Only or Dedicated_Sram(applicable for the Ethos-U85)" )
119
+ endif ()
120
+
121
+ # By default, use 2MB of temporary scratch buffer
122
+ # For Dedicated_Sram, use 128MB for the temporary scratch buffer and
123
+ # 384KB for the fast scratch buffer(the cache, applicable only for Ethos-U65 and Ethos-U85)
124
+ set (ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE 0x200000 )
125
+ if (MEMORY_MODE MATCHES "Dedicated_Sram" )
126
+ set (ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE 0x8000000 )
127
+ set (ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE 0x60000 )
128
+ endif ()
129
+ message (STATUS "ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE = ${ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE} " )
130
+ message (STATUS "ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE = ${ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE} " )
103
131
104
132
# Dependencies from the Ethos-U Core This is the platform target of
105
133
# Corstone-300, that includes ethosu_core_driver and bare-metal bringup
106
134
# libraries. We link against ethosu_target_init which includes all of these
107
135
# dependencies.
108
- if (SYSTEM_CONFIG STREQUAL "Ethos_U55_High_End_Embedded" )
109
- add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-300 target )
136
+ if (SYSTEM_CONFIG MATCHES "Ethos_U55_High_End_Embedded" )
110
137
set (TARGET_BOARD "corstone-300" )
111
- if (MEMORY_MODE STREQUAL "Shared_Sram" )
138
+ if (MEMORY_MODE MATCHES "Shared_Sram" )
112
139
target_compile_definitions (ethosu_target_common INTERFACE
113
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
114
- # ETHOSU_MODEL=1 place pte file/data in DDR area
115
- ETHOSU_MODEL=1
116
140
# Configure NPU architecture timing adapters
117
141
# This is just example numbers and you should make this match your hardware
118
142
# SRAM
@@ -144,7 +168,7 @@ if(SYSTEM_CONFIG STREQUAL "Ethos_U55_High_End_Embedded")
144
168
ETHOSU_TA_HISTBIN_1=0
145
169
ETHOSU_TA_HISTCNT_1=0
146
170
)
147
- elseif (MEMORY_MODE STREQUAL "Sram_Only" )
171
+ elseif (MEMORY_MODE MATCHES "Sram_Only" )
148
172
target_compile_definitions (ethosu_target_common INTERFACE
149
173
# This is just example numbers and you should make this match your hardware
150
174
# SRAM
@@ -180,14 +204,11 @@ if(SYSTEM_CONFIG STREQUAL "Ethos_U55_High_End_Embedded")
180
204
else ()
181
205
message (FATAL_ERROR "Unsupported memory_mode ${MEMORY_MODE} for the Ethos-U55. The Ethos-U55 supports only Shared_Sram and Sram_Only." )
182
206
endif ()
183
- elseif (SYSTEM_CONFIG STREQUAL "Ethos_U55_Deep_Embedded" )
207
+ elseif (SYSTEM_CONFIG MATCHES "Ethos_U55_Deep_Embedded" )
184
208
add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-300 target )
185
209
set (TARGET_BOARD "corstone-300" )
186
- if (MEMORY_MODE STREQUAL "Shared_Sram" )
210
+ if (MEMORY_MODE MATCHES "Shared_Sram" )
187
211
target_compile_definitions (ethosu_target_common INTERFACE
188
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
189
- # ETHOSU_MODEL=1 place pte file/data in DDR area
190
- ETHOSU_MODEL=1
191
212
# Configure NPU architecture timing adapters
192
213
# This is just example numbers and you should make this match your hardware
193
214
# SRAM
@@ -219,9 +240,8 @@ elseif(SYSTEM_CONFIG STREQUAL "Ethos_U55_Deep_Embedded")
219
240
ETHOSU_TA_HISTBIN_1=0
220
241
ETHOSU_TA_HISTCNT_1=0
221
242
)
222
- elseif (MEMORY_MODE STREQUAL "Sram_Only" )
243
+ elseif (MEMORY_MODE MATCHES "Sram_Only" )
223
244
target_compile_definitions (ethosu_target_common INTERFACE
224
- ETHOSU_MODEL=1
225
245
# Configure NPU architecture timing adapters
226
246
# This is just example numbers and you should make this match your hardware
227
247
# SRAM
@@ -256,14 +276,11 @@ elseif(SYSTEM_CONFIG STREQUAL "Ethos_U55_Deep_Embedded")
256
276
else ()
257
277
message (FATAL_ERROR "Unsupported memory_mode ${MEMORY_MODE} for the Ethos-U55. The Ethos-U55 supports only Shared_Sram and Sram_Only." )
258
278
endif ()
259
- elseif (SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_Low" )
279
+ elseif (SYSTEM_CONFIG MATCHES "Ethos_U85_SYS_DRAM_Low" )
260
280
add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-320 target )
261
281
set (TARGET_BOARD "corstone-320" )
262
- if (MEMORY_MODE STREQUAL "Dedicated_Sram" )
282
+ if (MEMORY_MODE MATCHES "Dedicated_Sram" )
263
283
target_compile_definitions (ethosu_target_common INTERFACE
264
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
265
- # ETHOSU_MODEL=1 place pte file/data in DDR area
266
- ETHOSU_MODEL=1
267
284
# Configure NPU architecture timing adapters
268
285
# This is just example numbers and you should make this match your hardware
269
286
# SRAM
@@ -295,11 +312,8 @@ elseif(SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_Low")
295
312
ETHOSU_TA_HISTBIN_1=0
296
313
ETHOSU_TA_HISTCNT_1=0
297
314
)
298
- elseif (MEMORY_MODE STREQUAL "Sram_Only" )
315
+ elseif (MEMORY_MODE MATCHES "Sram_Only" )
299
316
target_compile_definitions (ethosu_target_common INTERFACE
300
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
301
- # ETHOSU_MODEL=1 place pte file/data in DDR area
302
- ETHOSU_MODEL=1
303
317
# Configure NPU architecture timing adapters
304
318
# This is just example numbers and you should make this match your hardware
305
319
# SRAM
@@ -333,13 +347,9 @@ elseif(SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_Low")
333
347
)
334
348
endif ()
335
349
elseif (SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_Mid" OR SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_High" )
336
- add_subdirectory (${ETHOS_SDK_PATH} /core_platform/targets/corstone-320 target )
337
350
set (TARGET_BOARD "corstone-320" )
338
- if (MEMORY_MODE STREQUAL "Dedicated_Sram" )
351
+ if (MEMORY_MODE MATCHES "Dedicated_Sram" )
339
352
target_compile_definitions (ethosu_target_common INTERFACE
340
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
341
- # ETHOSU_MODEL=1 place pte file/data in DDR area
342
- ETHOSU_MODEL=1
343
353
# Configure NPU architecture timing adapters
344
354
# This is just example numbers and you should make this match your hardware
345
355
# SRAM
@@ -371,11 +381,8 @@ elseif(SYSTEM_CONFIG STREQUAL "Ethos_U85_SYS_DRAM_Mid" OR SYSTEM_CONFIG STREQUAL
371
381
ETHOSU_TA_HISTBIN_1=0
372
382
ETHOSU_TA_HISTCNT_1=0
373
383
)
374
- elseif (MEMORY_MODE STREQUAL "Sram_Only" )
384
+ elseif (MEMORY_MODE MATCHES "Sram_Only" )
375
385
target_compile_definitions (ethosu_target_common INTERFACE
376
- # ETHOSU_MODEL=0 place pte file/data in SRAM area
377
- # ETHOSU_MODEL=1 place pte file/data in DDR area
378
- ETHOSU_MODEL=1
379
386
# Configure NPU architecture timing adapters
380
387
# This is just example numbers and you should make this match your hardware
381
388
# SRAM
@@ -434,7 +441,7 @@ endif()
434
441
# the memory traffic of Region 1 should pass via the external memory(3) and the traffic for Region 2 should pass via the SRAM(0)
435
442
#
436
443
437
- if (MEMORY_MODE STREQUAL "Sram_Only" )
444
+ if (MEMORY_MODE MATCHES "Sram_Only" )
438
445
target_compile_definitions (ethosu_core_driver PRIVATE
439
446
NPU_QCONFIG=1
440
447
NPU_REGIONCFG_0=1
@@ -445,7 +452,7 @@ if(MEMORY_MODE STREQUAL "Sram_Only")
445
452
NPU_REGIONCFG_5=0
446
453
NPU_REGIONCFG_6=0
447
454
NPU_REGIONCFG_7=0 )
448
- elseif (MEMORY_MODE STREQUAL "Dedicated_Sram" )
455
+ elseif (MEMORY_MODE MATCHES "Dedicated_Sram" )
449
456
target_compile_definitions (ethosu_core_driver PRIVATE
450
457
NPU_QCONFIG=3
451
458
NPU_REGIONCFG_0=3
@@ -632,8 +639,9 @@ if(ET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE)
632
639
target_compile_definitions (arm_executor_runner PUBLIC ET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE=${ET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE} )
633
640
endif ()
634
641
635
- if (ET_ARM_BAREMETAL_TEMP_ALLOCATOR_POOL_SIZE )
636
- target_compile_definitions (arm_executor_runner PUBLIC ET_ARM_BAREMETAL_TEMP_ALLOCATOR_POOL_SIZE=${ET_ARM_BAREMETAL_TEMP_ALLOCATOR_POOL_SIZE} )
642
+ target_compile_definitions (arm_executor_runner PUBLIC ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE=${ET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE} )
643
+ if (DEFINED ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE )
644
+ target_compile_definitions (arm_executor_runner PUBLIC ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE=${ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE} )
637
645
endif ()
638
646
639
647
if (ET_BUNDLE_IO )
0 commit comments