summaryrefslogtreecommitdiff
path: root/source/hal
AgeCommit message (Collapse)Author
2024-05-16MLECO-4937: Adding top level MlekModule.cmakeKshitij Sisodia
For projects wrapping ml-embedded-eval-kit, this helper module file makes it easier to import some top level variables and to call into functions exposed by utility scripts as part of their env setup. Change-Id: I1cf8d2513776d653590871dc791c68349a38a884 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-05-07MLECO-4935: Refactoring user optionsKshitij Sisodia
Refactoring for CMake configuration options to allow target platform to drive their own defaults for certain dependent options. For example, the MPS3 target platform defaults to SSE-300 sub-system while native target doesn't need to worry about sub-system and CMSIS options which it will never use. This allows MPS4 target to default to SSE-315 and set the NPU arch to Arm Ethos-U65 as it should, which otherwise would have had to be explictly specified by the user. A welcome by-product of this is also that the options summary at the end of a successful CMake configuration stage would only include the settings that are actually used by the given target. Change-Id: Ibb7f8233d427cd33f39eeb4c71d88193aa998ebd Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Tested-by: mlecosys <mlecosys@arm.com> Reviewed-by: Alex Tawse <alex.tawse@arm.com> Reviewed-by: Conor Kennedy <conor.kennedy@arm.com> Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-05-03MLECO-4825: Adding Arm Corstone-315 supportKshitij Sisodia
This patch adds initial support for MPS4 based Arm Corstone-315 FVPs. The applications will execute on the FVP but with INITSVTOR set to `0x12000000` explicitly. The default value is the 64kiB code region at `0x11000000`. The linker scripts will be changed for the initial boot logic and vector table to be moved to the code region. This patch adds `source/hal/source/platform/mps4` directory. There is considerable overlap with MPS3 platform and this is expected to be the case until the support for MPS4 matures. Refactoring to pull in common bits from these targets will follow. Same goes for the CMake build support added under `scripts/cmake/platforms/mps4`. Change-Id: I981be9e1ec57cfedcf7d340b4f19e5eb40b5cbd3 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Tested-by: mlecosys <mlecosys@arm.com> Reviewed-by: Conor Kennedy <conor.kennedy@arm.com> Reviewed-by: Alex Tawse <alex.tawse@arm.com> Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-02-20Removing unused device_mps3.h headerKshitij Sisodia
Stray header file for MPS3 platform left over from refactoring in commit c22e80 has been removed. Change-Id: I197756e7183654fff0b0c97e7647ab72b62d96f9 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-02-06Fix: Remove S/NS aliases of non-existent DMA_0 interfaceLiam Barry
Correction for misprint in AN547 application note which proliferated to AN552. There are only 3 DMA interfaces. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I53dab9cbc41f80d7a2818ce6c5b8372ecbdfbd1a
2024-01-18Cleanup: Timing adapter definitionsKshitij Sisodia
The NPU timing adapter base addresses had been defined in mutiple places, making it difficult to determine which one is actually being used. This patch cleans up unused definitions from memory-map header files for different targets and the CMake template files. The expectation is for component base addresses to be set by platform specific CMake files that include/wrap the component directories. Change-Id: Ic39794ffbdb872b4b0c900cbcec8e386bb32c4eb Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-11-03MLECO-3640 MLECO-3678: Adding support for M85 in GCCRichard Burton
Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I087e23f43b41fa0ef97ec7dcaeba807f6cba17e7
2023-03-21MLECO-3802: [Maintenance] Remove Pillow warning23.02Isabella Gottardi
- Image.Resampling.BILINEAR replace deprecated Image.BILINEAR - Trivial documentation fixes Change-Id: Ia75af2d2bf171085d4a0a2c472f0e3f94dbdc5b9 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2023-03-15MLECO-3666: Updating to 23.02 dependencies.23.02-rc1Kshitij Sisodia
Updating dependency submodules to 23.02 versions. See https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u/+/refs/tags/23.02/23.02.json Change-Id: If0e396decadc1b4e3c6b263c65f75ccf0dafed28 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-02-13MLECO-2709: Inclusive language updateConor Kennedy
* Update various files to use inclusive language Signed-off-by: Conor Kennedy <conor.kennedy@arm.com> Change-Id: I538f61a400e1d58acb6397bb5e2ba3d912196314
2022-12-23MLECO-3748: Documentation updatesKshitij Sisodia
Added documentation around known issue with Arm GNU toolchain version 12.2.1. Minor change for MLECO-3731 also included. Link-time warnings for Arm GNU toolchain 11.3.1 also fixed. Change-Id: Ia8215e9f71327eeb59868aea91729d7b19dd6d34 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-12-21MLECO-3659: Improvement for NPU PMU countersKshitij Sisodia
The NPU idle count could have been erraneously high as the counters were always running. This change utilises callback functions to start/stop the counters only when the inferences start/stop executing on the NPU. Changes have been made to cache maintenance functions called from within the NPU driver's pipeline to reduce the overhead caused by these. Change-Id: I69db0d3b3f3fe5b2847e15b5c3096cb1e0484176 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-11-17MLECO-3583: Update copyright notice according to new guidelinesRichard Burton
Change-Id: I0f057b33993e5196a60e52f4fb0c60e09693dcfe
2022-11-02MLECO-3238: Fix for cache clean/invalidationKshitij Sisodia
Small fix for the issue of weakly defined "clean" and "invalidation" functions for D-cache in use. Change-Id: I452768ef216393834f20395a56cde6ff5f52d29a Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-31MLECO-3578: Adding support for Arm Compiler 6.19Kshitij Sisodia
Minor update to retarget.c for system function `tmpnam`. Change-Id: I08cced273e517d00644167f8f5520b09f3c9d10c Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-08-25MLECO-3252: Minor documentation additionsKshitij Sisodia
Documentation md files added under source tree with links to the main docs. Minor updates to FAQs for MLECO-3251 as well. Change-Id: Ifdcc587f2fcf77228fd46e211d3f9c3963bc9b97 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-08-16MLECO-3319: Documentation updates for Arm® Corstone™-310.Kshitij Sisodia
Documentation updates around use of Arm® Corstone™-310 AVH, especially in terms of use of timing adapters (TA). Also, use of TA's is forced off for SSE-310 subsystem's CMake configuration. Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Change-Id: I66a87060d8d47ce2580aa15f3908be20162eab54
2022-07-08MLECO-3296 Override the AXI Burst Length for Ethos-U65Eanna O Cathain
Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com> Change-Id: Ia0d349ea0014ee10f275731f3c1de4f9287839e1
2022-06-10MLCE-864: Enabling I-Cache and D-Cache for MPS322.05Kshitij Sisodia
Both supported implementation on MPS3 (Arm Corstone-300 and Arm Corstone-310) will now have caches enabled. Also including a minor change left over from refactoring of code for HAL components. Change-Id: Ie5768cd26eef9083a817bca7c87ff691dae67fca
2022-06-09MLCE-864: Removing redundant warningKshitij Sisodia
MPS3 clock is logged in the output, removing the warning as profiling would be impacted by this additional logging over UART. Change-Id: I1f941a75752bed0c871240aee664f8191916ab1d
2022-06-01MLECO-2968 Create a docker image with all requirementsKshitij Sisodia
Added a Dockerfile to setup and install requirements for the ml-embedded-evaluation-kit repository. Also included minor change (MLCE-859) for NPU components' source file. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I621fb2991218a451a0e8c33e14032b9c9e36709e
2022-05-23MLECO-3225: Using official support for Arm Cortex-M85 CPU.Kshitij Sisodia
* CMake version requirement bumped up to 3.21.0 * CMake 3.22.4 installed in the local Python virtualenv * CPU flags updated in toolchain files. * Using __ARM_FEATURE_DSP instead of potentially defining ARM_MATH_DSP wrongly. * CMake project version bumped up to 22.05.0 Changes also made for MLECO-3107 (pack generation): * TensorFlow Lite Micro CMSIS-pack version updated to 1.22.02. * Change to using __ARM_FEATURE_DSP will also help the generated pack. Partial changes for MLECO-3095: * CMSIS updated to version post 5.9.0 * TensorFlow Lite Micro updated to latest available * Ethos-U driver and core-platform repositories updated to 20.05_rc2 tags. Change-Id: I012c9e65897aed8ce589cff9bfe3a19efc3edeb9 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-17MLECO-2985 Adding Corstone-310 supportKshitij Sisodia
Change-Id: Ifa4b11154478355c10cb3e747b9938a74afd242b Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com>
2022-05-12MLECO-3186: Each use case should same namespace convention as KWS and ASRLiam Barry
Certain UCs required additional work due to case context variables which also became part of a namespace in generated files. Solution was to declare these extra variables as part of the UC namespace in the respective model.hpp files. Additional changes to standardise use of namespaces may be required - proposing new task. Minor typo and rewording of customizing.md in relevant sections included. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: Ie78f82a30be252cb841136ea5115f21fc8d762cb
2022-05-06MLECO-3183: Refactoring application sourcesKshitij Sisodia
Platform agnostic application sources are moved into application api module with their own independent CMake projects. Changes for MLECO-3080 also included - they create CMake projects individial API's (again, platform agnostic) that dependent on the common logic. The API for KWS_API "joint" API has been removed and now the use case relies on individual KWS, and ASR API libraries. Change-Id: I1f7748dc767abb3904634a04e0991b74ac7b756d Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-21MLECO-3110: Fix for warnings from TensorFlow Lite MicroKshitij Sisodia
Changes to fix "Pillow not found" warnings from TensorFlow Lite Micro build. Change-Id: I42a9b3f6df746ac3e34585e0c79ffdf35da97aef Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-13MLECO-2921: Minor changes for HAL projectsKshitij Sisodia
Ensuring individual HAL projects can be configured without the need to be wrapped. Tests can now be added to build individual components and check for any unintended dependencies creeping in. Change-Id: I057699c3c3cc0fc280615db30a25fbe4c28ae8ea Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-08MLECO-3070: Further HAL cleanup.Kshitij Sisodia
Cleaning up HAL sources by removing unnecessary redirections with function pointers. The "platform packages" under HAL are now streamlined enough to not need any major HAL wrapping (as was the case before). This allows us to have a very thin HAL layer that sits on top of the platform and compnent packs. Also helps in getting rid of "hal platform" pointer being passed around in the code to use any HAL functionality. Change-Id: I04b2057f972aad7a5cfb4a396bcdf147c9f9ef1c Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-06MLECO-3096: Removing data_acq and data_psnKshitij Sisodia
Further to the HAL refactoring done in previous commits, this CR simpifies HAL by removing data_acq and data_psn "modules". The associated function pointers have been removed. Change-Id: I04c194c08dfe0aff98ce4e0f0f056bac254c137d Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-05MLECO-3096: Removing "timer" from HAL profile.Kshitij Sisodia
Attempting to have timer functionality contained within the platform drivers "package" as it should (in line with the refactoring work done so far under HAL). This will ensure that we don't need two timer implementations under HAL "profiles" and therefore, this whole directory can be removed. This change also addressed issue with the applicatio level Profiler code knowing about how the PMU has been set up by the platform code. This link has been removed completely. This will make it much easier to add/amend the Ethos-U PMU event counters types and give each platform the capability of populating their relvant counters. The application level Profiler doesn't know which metrics it is displaying but just calculates and maintains statistics for whatever PMU counters it receives from the HAL level. A fix for timing adapter issue introduced in the last CR is also included. Change-Id: Ia46e03a06e7b8e42b9ed2ba8f2af2dcd2229c110 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-03-28MLECO-2917 Replacing platform CMake definitions with headersKshitij Sisodia
Moving away from CMake description of targets and generation of platform header files (for memory addresses and IRQ numbers). Instead these headers are part of the repository under their respective platform-driver packages under HAL sources. Change-Id: I9bd3e68eb17385f8b93eb3d8d76b212ce0e1a6d5 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-03-18MLECO-2999: Minor improvement for HAL NPU componentKshitij Sisodia
Dcoumentation updates in line with recent refactoring and some minor update to the HAL's NPU component. Change-Id: Iadb34dbcdedf7259f786c42bd8fcf2d950a51410 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-03-14MLECO-2997: Support region configuration overrides for memory modesIsabella Gottardi
Change-Id: Ib42829b61e840a47086898d6f8941f0e92f2f8fe Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-03-14MLECO-2919: Restructuring to standardise HAL APIsKshitij Sisodia
* LCD module component created (removed from individual platform packs). * retarget.c moved out into its own component that wraps the uart module. It also have the native stub for GetLine => paved the way for removing data_acq module from profiles. * shortened names for components' dir for npu and ta * remove peripheral_memmap and peripheral_irqs headers from platform_drivers.h. There should be no need for these to be included in the top level now. These should be private headers. * cmsis_device moved in as a component. * Pyenv created by set_up_default_resource.py will also install packages that CMake's source generator needs. TODO's: * Remove timer from profiles (MLECO-3096) Change-Id: I9d6ea2f4f291788f40a16ed507019563c8d7f205
2022-03-04MLECO-2978: Update to 22.02 dependenciesRichard Burton
* Add missing CMake setting used for building driver Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I2aae67d6780f88e661f9a54177943553b0f0dd4c
2022-03-04MLECO-2984: Refactor componentsKshitij Sisodia
* Use UART component from Ethos-U core-platform * Components as cmake project Change-Id: I053f3a59800abc20216e6a4df8555db357e3f21d Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-03-03MLECO-3001: Correction for header include.Kshitij Sisodia
Change-Id: Ie33c564e877dd27eb3b6d9fe22226dde3eb25323
2022-03-03MLECO-3001: Reinstate handler overridesLiam Barry
Revived & renamed irqs.c as handlers.c Removed reset handler and associated functions Switched to including it as a PUBLIC source Change-Id: Iccbd7061efcf9a1cfa9fac0fdbc2ab073d9f6150 Signed-off-by: Liam Barry <liam.barry@arm.com>
2022-03-02MLECO-2881: Using MD5 sum for downloaded resources check.Kshitij Sisodia
Removing git as a requirement for the checks performed for downloaded resources. Another minor change is renaming of RTE_components.h to RTE_Components.h as per the convention. Change-Id: If93f80f2f5dfa6a3f143259904c33b3b6d3a6e7c Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-03-01MLECO-2983: Preliminary support to allow semihostingKshitij Sisodia
Adding basic support to allow applications to build with semihosting support. Default state is always disabled. Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Change-Id: I1d34c3a246560aaffcb34eee801e1a87d887d559
2022-02-28MLECO-2976: Configurable Ethos-U cache size for Dedicated_SramIsabella Gottardi
MLECO-2949: Platform drivers should own NPU and TA init Change-Id: I13606a0197f137816bae803eb9d7d46c358b5fb8 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-02-25MLECO-2944: CMSIS device refactoringKshitij Sisodia
* RTE_components header to include corresponding Arm Cortex-M system header * remove custom CMSIS implementation from repo * use templates within CMSIS repo instead * update cmake to use header and source files within CMSIS repo Change-Id: I3534dae97b93c07a5056471b1d1dedbc78f00aa7
2022-02-23MLECO-2948: Minor refactoring for platform modules.Kshitij Sisodia
Reducing dependency on cmsis-device sources as these will be removed under MLECO-2944. Also, starting to refactor to allow HAL to drop NPU and TA init routines - this will happen in future CRs. Added platform driver for native, and subsequent patches will attempt to get rid of the HAL "profile" specific sources and allow platform stub implementations at a level below HAL. This will allow platforms drivers to only override the range of functions that they actually want to implement and will fall back on stubs for the rest. In this CR only "utils" have been removed. Change-Id: I09b4a28e20847a07a956c818c6f47c74aab89063
2022-02-15MLECO-2946: Draw boxes directly on the LCDRichard Burton
* No longer copy the source image * Boxes are drawn directly to LCD rather than on source image * Change c style casts to static casts Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: Ib8e926cb1a87bc2c40424eb5aace40170c526f1d
2022-02-11MLECO-2752: Minor refactoring for native global steps.alexander
And further optimisations of extendability for platform build steps. Added a list for excluded use-cases. Change-Id: I5a9398bbeb595a5bf2ea39b81623e4f20238f948 Signed-off-by: alexander <alexander.efremov@arm.com>
2022-02-10MLECO-2682: CMake and source refactoring.alexander
MLECO-2930: logging macros were extracted from hal.h and used separately around the code. MLECO-2931: arm_math lib introduced, cmsis-dsp removed from top level linkage. MLECO-2915: platform related post-build steps. Change-Id: Id718884e22f262a5c070ded3f3f5d4b048820147 Signed-off-by: alexander <alexander.efremov@arm.com>