aboutsummaryrefslogtreecommitdiff
path: root/targets/corstone-300
AgeCommit message (Collapse)Author
2024-01-22Change threadx_demo to use ThreadX lib init fileMikael Olsson
Instead of using its own low level initialization file for ThreadX, the ThreadX demo has been changed to use the one provided by the ThreadX library. The initialization file from the ThreadX library, assumes some specific symbol names are present in the linker script so the script for the Corstone-300 platform, which is the only one that currently supports the ThreadX demo, has been updated accordingly. To still be able to use the HardFault_Handler from the platform target, the handler provided by the ThreadX library is marked as a weak symbol before linking. Change-Id: I757b74bc30e295bc1f7126fc5d9330e381d7a886 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2023-09-25Fix minor typos and naming in commentsLedion Daja
Change-Id: Ie0c57c520d591016855239a502eaf74d23b418fe Signed-off-by: Ledion Daja <ledion.daja@arm.com>
2023-05-15Explicity set Ethos-U interrupt priority23.05-rc223.05Jonny Svärd
FreeRTOS-kernel implements interrupt priority checks, make sure that 'FromISR' API calls are called from interrupts with priority lower (higher number) or equal to 'configMAX_SYSCALL_INTERRUPT_PRIORITY'. Change-Id: I152b6cf7ef649a18d171c80e7907d8c8736a3cef
2023-05-08Remove LSTM kernel relocation for gcc buildsJonny Svärd
Syncs better with the scatter file Change-Id: Idd82b84897c3f20d4a696ca770084f123bd74f7c
2023-04-04Remove ETHOSU define from targetsJonny Svärd
Ethos-U core driver exports the macro Change-Id: I373dbdaa9ec0ee24d566912fc876a4a0627e8b63
2022-12-14Add minimal implementation of syscalls in retarget file.Ledion Daja
The nonsys specification of the newlib library, supplied with the Arm GNU toolchain provides stubbed version of several system calls, in order to allow linking with libc. Amongst such subroutines are _fstat, _getpid, _isatty ,_kill, _lseek, for which the GNU toolchain also generates a linker warning. Patch retargets these subroutines by adding a minimal implementation. Change-Id: I74db7ab77f49ce8c909eb24691b96d5e7b36692a
2022-10-25Add support for ARMCompiler 6.19Jonny Svärd
See Release Notes for ARMCompiler 6.19 for more information about the _sys_tmpnam change. Change-Id: Icf05d4c59d7fc6aed437744edd017447450da9cd
2022-10-19Ethos-U PMU monitorKristofer Jonsson
Add Python script demonstrating how to download performance data from device. Write baremetal PMU events to Event Recorder ring buffer and increase the systick sample rate. Change-Id: Ib73c56100a8de2d7b74c455d8f80cda0b59383da
2022-09-29Place code segement in BRAMKristofer Jonsson
Use .ANY1 and .ANY2 to place code with highest priority in ITCM and lower priority in BRAM. Change-Id: Ia335dabb451181bfaf26fc1a7a57cd8196a00912
2022-09-19Move LSTM kernel to BRAMKristofer Jonsson
Change-Id: Id0244bb35236d0b04732e3fddbaa472686c63483
2022-08-25Add negative testing to message_handlerDavide Grohmann
Also restructure the scatter file to not be constrained of the artificial 512k size limit of the APP_IMAGE region. Add missing sections in DDR for both scatter file and linker script. Change-Id: I3d9bc8aeae1b1c11ab994276be64a2850cc23f8e
2022-06-10Fix: add missing sections to dram in corstone-300Davide Grohmann
Change-Id: Ice51d9ab1ca828576b104b61bc86ed1918bdd878
2022-05-24Bugfix for tarmac traces being always enabled22.05-rc322.05Jonny Svärd
Change-Id: Ide11895f0ce96d48d14210253c25d2ac624cf856
2022-05-06Fix: length for scatter loading should be in words not in bytesDavide Grohmann
Divide by 4 the length in bytes to get length in words as expected by the CMSIS scatter loading implementation. Change-Id: I5d239e13739a578bd61dc0b594e3453e8dcdab4d
2022-03-03Update ld script for corstone-300Johan Alfvén
Make sure that BRAM data is stored with correct aligment in DDR. The BRAM data is copied from DDR by the .copy.table and if alignment is not correct the BRAM data will be corrupt. Change-Id: I0e8cd9d1ebdc9e8428ddcc9c842411ca40724740
2022-02-25Add CMake variable to pass arguments to ctest22.02-rc3Per Åstrand
This is needed in order to for example turn tarmac tracing on for the FVP running the tests. Change-Id: I6606134046c2e228d3fe06db41792e7403cd6ba8
2022-01-18Build system updatesKristofer Jonsson
Move finding Python after the project command. This was causing incremental CMake configurations to fail. Moving ETHOSU_TARGET_* variables after adding the common subdirectory. It is necessary to set the variables before the core driver is included. Change-Id: I1c6883061cb9247336f8b33d82d2e2de870634fa
2022-01-18Fix CMake warningsNir Ekhauz
Updating the minimum required CMake version fixes toolchain warnings for Arm Clang. Change-Id: I8f7371136739f6beb758d03cc76c2df17180f07c
2021-12-22Timing adapter fix, init constructor priorityKristofer Jonsson
The timing adapters are attached to the Ethos-U AXI ports and should only be initialized if the platform has been built with NPU support. Add priority to init the constructor, insuring it will run before any other constructor. This is important because the init constructor sets up UART. Change-Id: I189687437b95b11f6503c7631720e7883c24ada6
2021-12-14Add mpu driver and remove interface libraryYulia Garbovich
from drivers Add mpu driver for upstreaming After removing of interface library,targets and applications will list explicitly which libraries to link Change-Id: Icfa449a2981093161f283e45b4d52ca6199371b8
2021-12-02Fixing compiler warningsKristofer Jonsson
Adjusting toolchain files which compiler warnings to enable. Fixing compiler warnings reported by Arm Clang and Arm GCC. Change-Id: I715e875904ffd7ecfe994d3093cdf066373981b1
2021-11-25Use CMake to find Python 3 interpreter21.11-rc3Kristofer Jonsson
The name of the Python 3 interpreter is ambiguous. 'python3' is not available on all systems and 'python' can be both a Python 2 and Python 3 interpreter. Change-Id: I4ea119c617d1746fd34ecdd118a7c25dfe17dc86
2021-11-22Updating required CMake version to 3.20Kristofer Jonsson
Change-Id: Icd870cad2917480a01d5f79897931c1effc66546
2021-10-24Verify Corstone-300 AN552Nir Ekhauz
Set BRAM size to 1MB and SRAM size to 2MB for corstone-300 target in gcc and armclang. Change-Id: I5728948ba64fa69459f9a28d8b6459f7d63bd4d0
2021-10-19Default timing adapters mode valueKristofer Jonsson
Setting default value for the timing adapters mode register. Change-Id: I71efd96b8235d476a0d133c4f93cb97530172ab5
2021-10-18Configure timing adapter in run_platform.pyNir Ekhauz
Change-Id: Ib108298417980a586bed8c8b4e0bb5e57f238316
2021-10-05add fallthrough attribute to prevent fallthorugh warning in uart, corstone-300Annie Tallund
Change-Id: I207271d41a8dfa899ac5f53842790c4206657fe5
2021-09-30Add memory area to run_platform.pyNir Ekhauz
Control the placement of the model and the arena for baremetal application in SRAM/DRAM by 4 configurable options: a. Model in SRAM and Arena in SRAM b. Model in SRAM and Arena in DRAM c. Model in DRAM and Arena in DRAM w/o Scratch buffer d. Model in DRAM and Arena in DRAM with Scratch buffer in SRAM Change-Id: Ia154be8a1c88cb13aeee62e701c2db7719a9d71c
2021-09-14Enable the execution of run_platform.py when no values for pmu configuration ↵Nir Ekhauz
are defined Define default values Jira: MLBEDSW-5215 Change-Id: Ie498f7170804a2f1a6d3eb64fff4c859272efe2b
2021-09-01run_platform.py PMU configurationNir Ekhauz
Enable configuration of up to 4 PMU counters Jira: MLBEDSW-4744 Change-Id: I08e9073d827033b3340bffd680288b1a83833d64
2021-08-18Fix: return value for GCC _write and _read is written/read chars21.08-rc321.08-rc221.08Davide Grohmann
When using ARMClang compiler the functions _sys_write and _sys_read should return the number of unprocessed characters, whilst when using GCC the functions _write and _read should return the number of processed (i.e., written or read) chars. The code was returning the unprocessed characters value in both cases (i.e., 0) making the calling code to exit early with error and stop further processing when using GCC. Hence no subsequent calls to write would be executed causing missing output on the console. For example, string truncation has been seen when printing on stderr. Note that the bug was not really visible when printing to stdout, but it was immediately exposed when using stderr. This was likely due to the fact that libc buffers the stdout output and flushes it only when encountering a new line char (\n), whilst no buffering is done on stderr. Indeed by printing whole buffers the problem was worked around and went unseen. Change-Id: I5a48d6a29441175b2a950716997332a8b9c34e10
2021-07-01Increased heap and FreeRTOS stackKristofer Jonsson
Tensorflow lite micro has increased the size of the MicroProfiler. As a consequence the FreeRTOS application needs to increase the stack size allocate from the heap. Change-Id: I8e4df44767edaecee27d9571319ef72da5937a3b
2021-06-28Building without NPUKristofer Jonsson
Support building applications for targets without a NPU. Change-Id: I04199b1c0444f23eadc6d4cf85195413dfd8bc97
2021-06-28Buildsystem restructuringKristofer Jonsson
- Allow linker file to be overriden - Disable Trustzone build for other targets than Corstone-300 - Make toolchain TARGET_CPU variable cached Change-Id: I98a15e1080e4bf49e029578888b1e4ce362bbab7
2021-06-08Remove hardcoded Ethos-U driver instanceJonny Svärd
Adjust to updated Ethos-U driver Change-Id: Ie374c29bec2baee4717634588b22f6db419ad9a3
2021-06-04Remove dependency on cppJonas Ohlsson
Remove dependency on cpp, and instead use the specified compiler to preprocess the linker scripts. Signed-off-by: Jonas Ohlsson <jonas.ohlsson@arm.com> Change-Id: I000082f8e90015b12f99ba3f616b6b3e07647873
2021-06-01Corstone-300 reduced SRAM sizeNir Ekhauz
Fix inconsistencies between the scatter file and linker script Jira: MLBEDSW-4596 Change-Id: I4d31fc89ef0d0371e1ba8758d60871674cf844a9
2021-05-26OptimizationsKristofer Jonsson
Setting NDEBUG for non debug builds. This will disabled the asserts used by the for example the Ethos-U driver. Disabling caches by default. Change-Id: I614edc09b99e9997af7e113c7565d64f273f3fa0
2021-05-05MLBEDSW-4228 Building on Windows21.05-rc1Jonas Ohlsson
Changes to facilitate building on Windows systems. Signed-off-by: Jonas Ohlsson <jonas.ohlsson@arm.com> Change-Id: Ib95bd89fe476790333bafccc3f6fa402b6569166
2021-05-04[Core Platform] Update to support removal of "_v"-functionsAnton Moberg
NPU driver interface currently have functions which have been stepped each time a compatibilty breaking changed has been introduced. Old entrypoints have been redefined with macro to use the latest version for backwards compatibility. This series of patches will remove any such functions and macro to unify the interface. Update: All driver entrypoints to support updated interface Change-Id: Ibe5fa7b2ac909eceb16a6879d4eaf9d0d7e36211
2021-05-04Generate binaries for all executablesPer Åstrand
Add helper to generate binaries for all targets added with ethosu_add_executable in order to ease development on fpga. Change-Id: I23df4f8aa1fd2d8a1e633d337b9f09ad7fe75774
2021-05-04Update ld script for corstone-300Per Åstrand
Name memories as they are in reference manual and consolidate the ddr objects to single section to ease the creation of the binary. The program headers are also updated to use the same layout as using armclang. Change-Id: Ib98cad45d0679c0d44226c46c2398d02f771ea9f
2021-04-27Add missing NS address' to S MPU config tableJonny Svärd
Note that the MPU is split between S and NS. Code running in NS (non-secure) state will not have access to S regions, however it will have access to NS regions unless the MPU_NS is configured (or other security mechanisms like SAU/IDAU limits access). The MPU for NS is not enabled or configured in this example code. Change-Id: I6b07bda25e4dbb23e8c2afdfa01d82ca5611f21a
2021-04-22Enable MPU and CPU cache for Corstone-300Jonny Svärd
- Enable CPU instruction- and data cache by default. - Add a CMake option to turn CPU cache on/off. - Add basic MPU configuration for memory areas. Make the code segment RO (NS address' are reachable from secure state, hence MPU config entries for both S and NS address of ITCM). - Target latest NPU API version Change-Id: Ie9bf2f02e5ad534375d146804fdc66b9f2f6770f Change-Id: I9def430d1e61d18e521798db4f48ed0a8c58380e
2021-03-31Update license headersAnton Moberg
Update all license headers to the correct years. Change-Id: I18881cbceabe26066d69d8535bb3cb969cbaeba1
2021-03-26Driver unit testsKristofer Jonsson
Add driver unit tests that runs simple command streams directly on top of the NPU driver. Change-Id: I3fcce2a2bfbd458d14186b8fd13ba47174f49562
2021-03-24Use new timing adapter driver from core_softwareJonny Svärd
Add basic skeleton to initialize timing adapters. See core_software/drivers/timing_adapter/include/timing_adapter.h for description of settings and API. Change-Id: I0884f8efc5735b1a837d45e0bb7c6612d329ad58
2021-03-02Rename .bss.NoInit section to .bss.tensor_arenaJonny Svärd
Change-Id: I660cd5d2bc73eaf589598c4f0570f5e9293de28d
2021-02-25Adding CTest script21.02Kristofer Jonsson
Adding script to run CTest on the Corstone-300 FVP. The script will detect which version of the FVP that is used and pass the correct command line arguments. Updating README with instructions how to run tests, either using CTest or calling the FVP directly. Update FreeRTOS example to exit with the status of the inference. Minor adjustments are needed to the output vectors. Change-Id: I8a1a740b0dec2ce35d95e5c5d91f4b57a2c8e1fa
2021-02-24Use mobilenet_v2 for freertos test applicationPer Åstrand
Replace the CPU-only network with mobilenet_v2_1.0_224. The header files in this commit are the same as the model data in the trustzone application, see the README.md in applications/trustzone_inference for details on how to generate them from source on Arm ML-Zoo repository on github. Change-Id: I8d3cfd6313fd5d98880cf1b24511208ca12faa05