- Aug 01, 2025
-
-
Kshitij Sisodia authored
Global offset table section has been added to the linker scripts for all targets. This is especially important for ExecuTorch runtime. This already exists for LLVM based toolchains but was missing for GNU toolchains. A minor addition to support ExecuTorch runtime logging is also included. Change-Id: Ia3fdf13b26b24163c3405d33c2df532359749836 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jul 30, 2025
-
-
Kshitij Sisodia authored
Adding HDLCD driver for MPS4 platform and with wiring it up to the newly refactored display component under HAL. Splitting the CMakeLists under `display` component with a CMakeLists file now present in MPS3 and MPS4 specific subdirectories auto-included by the top level but their targets "excluded from all" by default. Resolution for MPS4 targets is kept the same as it is for MPS3 boards to ensure the applications using the display interface can continue working as they are. However, this may be updated in future if we wish to use higher resolution offered by the HDLCD component. Change-Id: Ib1be3ff861267e8c560429969b5475e22899c4dc Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jul 29, 2025
-
-
Kshitij Sisodia authored
Refactoring the LCD implementation under HAL to remove unrequired redirection and briging it in line with the camera and audio interfaces. Renaming `lcd` as a `display` component to make it generic, in preparation for support to be added for Arm Corstone-315 and Corstone-320 targets in later patches. Change-Id: I7da4d9c5ec91d2aa5ee3af7133575c47c06cae88 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jul 21, 2025
-
-
Kshitij Sisodia authored
The Arm NPU delegate library needs to be built before other libraries higher up in the chain. Although this dependency was captured in CMake, using only the target file (and not the CMake target itself) can cause issues with Makefile generator. Adding this dependency explicitly fixes the issue. Change-Id: Iad5f9bfa01ebfe7413f2473dbbd043a13fbfc8fa Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
Kshitij Sisodia authored
Fix for some third party toolchains failing to compile the math library without explicitly including the cmath header. A trivial non-related doumentation fix to say that LLVM or Clang based toolchains may not work for ExecuTorch either. Currently, only Arm GNU Embedded Toolchain works with this flow. Change-Id: I12889d796886fb0532002c01b1b603982c926e31 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jul 18, 2025
-
-
Kshitij Sisodia authored
Updating ExecuTorch submodule to the latest version. The Arm AOT compiler within ExecuTorch source tree doesn't need path to the shared lib as it previously did. All references to this lib used for PTE file generation have been removed. Additionally, the linking hierarchy for ExecuTorch libs has been amended to make it simpler to link to. Change-Id: I1d80e5a6d16666d5106c57f7d9b94c9d0f4f4b6a Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jul 15, 2025
-
-
Kshitij Sisodia authored
TensorFlow Lite Micro based logging uses the overrides for generic Arm Cortex-M CPU targets. This patch ensures that this is the case only when the framework library target is configured internally. This will allow external library targets to be provided without mandating the use of generic Arm Cortex-M target files being included in the build. Change-Id: I022efc9d884d789e22f970e1f6e5ddb5e12efe4f Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
Alex Tawse authored
* Fixing the name of the setup script in the documentation Signed-off-by:
Alex Tawse <alex.tawse@arm.com> Change-Id: Icf588d708164f8fa3ed816b08f9cc8f279a10353
-
- Jul 14, 2025
-
-
Kshitij Sisodia authored
This change allow external projects to override CMSIS-DSP and TensorFlow Lite Micro dependencies by providing their own aliased CMake targets. This enables reuse of the platform-agnostic modules without requiring the default dependency configuration. Change-Id: I46e7c3f2906e2527b5cda2959f0bd5f3f57a47ba Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
Kshitij Sisodia authored
-
-
- Jul 01, 2025
-
-
Kshitij Sisodia authored
-
Kshitij Sisodia authored
*** WARNING: Unstable changes *** This experimental branch introduces a framework abstraction layer and adds initial support for the ExecuTorch backend alongside TensorFlow Lite Micro (TFLM). Highlights: ---------- - Introduced `fwk/` module with backend-agnostic interfaces to decouple use-case logic from ML frameworks. - Isolated TFLM-specific logic into `fwk/tflm`; added ExecuTorch based implementation under `fwk/ExecuTorch`. - Enabled selection of ML framework via `ML_FRAMEWORK_BUILD` CMake flag. ExecuTorch Integration: ---------------------- - Added ExecuTorch model and tensor classes. - Integrated native (host) inference flow. - Enabled AOT compilation pipeline via `aot_arm_compiler` and `.pte` generation. - Added portable ops shared library. - Added data layout conversions (NHWC → NCHW) in common API. Infrastructure & Setup: ---------------------- - Refactored setup scripts with improved structure and Pylint compliance. - Introduced `--parallel` flag to speed up model setup. - Extended script to generate ExecuTorch models and support conditional use-case setup. Documentation: ------------- - Updated all use-case documentation to reflect framework compatibility. This lays the groundwork for future extensibility, enabling use-cases to support multiple ML runtimes with minimal duplication. Co-authored-by:
Alex Tawse <alex.tawse@arm.com> Change-Id: Ic69e4d86008036a35d1b47aeb541a2144b84d574 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Jun 13, 2025
-
-
Updating third party dependencies to 25.05 versions. The full list can be found here: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u/-/blob/main/25.05.json +-------------------+------------------------------------------+ | Dependency | Commit/Tag | +-------------------+------------------------------------------+ | cmsis-6 | efba702bbdb5610e866a745740fdf68f2d4d4af5 | | cmsis-nn | 1438b3328d7f910423a7057f1abcb6d6576325f2 | | core-driver | 25.05 | | core-platform | 25.05 | | cortex-dfp | 36d0d3b118ab8493865044551d05248a5fe53427 | | tensorflow | 9d35a74b03fa313026982abb4d2c4ffe29de88bc | +-------------------+------------------------------------------+ Vela version used by default has been bumped to 4.3.0. Dependencies not updated with this change: * cmsis-dsp: `v1.16.2` is still the latest stable release. * avh: No major updates since 925049e8. Change-Id: I21acdff4880f3ea634e398a5bf9ed9adaf36cdf9 Signed-off-by:
Vivek Choradia <vivek.choradia@arm.com> Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- May 30, 2025
-
-
Alex Tawse authored
* Fixing broken documentation links * Removing header for removed section Change-Id: I80b0dea4919c7ce65e8a1ea4340f011d9506f371 Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- May 13, 2025
-
-
Kshitij Sisodia authored
Adding support for newer LLVM based Arm Toolchain for Embedded (ATfE). This is experimental at this stage but has been tested with versions 19.1.5, 20.0.0 and 20.1.0. For platforms, these changes have been tested on FPGA implementations AN552 and AN555 and all variants for FVPs supported. Major additions are the CMake toolchain file and linker scripts, along with required plumbing. CMake presets and documentation have been updated too. Linker scripts now have toolchain ID and extensions as suffix instead of just the extension. With the associated CMake toolchain file changes, support for semihosting has also been refreshed, making it possible to build and run semihosted applications on FVPs easily for all toolchains. To enable easy boot verification, a simple HAL test has been added. This needs to be built explicitly and will produce a small application that boots the target platform and calls HAL initialisation function. Change-Id: Id114ca45ed53411c2647a2a0f775ba76609068ac Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- May 09, 2025
-
-
* This patch allows user to press a key to continue to the next inference controlled by a new CMake config option - INTERACTIVE_MODE. * This is useful when terminal or LCD output needs to be inspected before continuing to the next inference * Simplified stdout component and removed redundant method Change-Id: I0d4b65ce82292606a31fa89fe47b7d86aa3c27e7 Signed-off-by:
Vivek Choradia <vivek.choradia@arm.com> Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- May 05, 2025
-
-
* Updating FPGA deployment instructions to include macOS® commands. Change-Id: I52cf648e8f1ec26bcd5a328b616109f2064fa9ef Signed-off-by:
Vivek Choradia <vivek.choradia@arm.com> Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- Apr 14, 2025
-
-
Alex Tawse authored
* Replacing mlplatform.org URLs to GitLab equivalents Signed-off-by:
Alex Tawse <alex.tawse@arm.com> Change-Id: I7c4bb74ff75799d08b2ce2871b389e75ced6cd73
-
- Mar 25, 2025
-
-
Kshitij Sisodia authored
Updated bare-metal toolchain files to always add function and data sections for both toolchains. This will reduce runtime code footprint. Again, it was previously disabled for legacy reasons (timing adapter driver implementation) that are no longer relevant. Change-Id: I15aa57d1cadcf2b92a5b9e01bd1d113161c67e84 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Mar 19, 2025
-
-
Kshitij Sisodia authored
Addressing couple of issues raised here: * https://github.com/ARM-software/CMSIS-DSP/issues/242 * #1 CMSIS-DSP was previously using MLEK wrapper to set up the sources and compilation flags. This was done for legacy reasons that are no longer relevant. With these changes we rely completely on the CMSIS-DSP project's CMake config to avoid unnecessary duplication and maintenance cost. Compile option passed to Arm(R) Compiler `-ffp-mode=full` has been dropped as it is no longer required. This has been replaced with recommended `-ffast-math` option instead. Minor Jinja2 version bump (Python environment requirement) is also included. Change-Id: I826d0b4dd3f248cb4d91fe095717805b8d341467 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Mar 14, 2025
-
-
Kshitij Sisodia authored
Updating third party dependencies to 25.02 versions. The full list can be found here: https://gitlab.arm.com/artificial-intelligence/ethos-u/ethos-u/-/blob/9c339ddd5369e37ed554f7e39647f4e0967a3e2d/25.02.json Remote URLs for core-driver and core-platform have been updated to track these sources from https://gitlab.arm.com/ as mlplatform is a read-only mirror for now and will not have any new changes. +--------------+------------------------------------------+ | Dependency | Commit/Tag | +--------------+------------------------------------------+ |avh | 925049e8ab010388e48fab01fc0411cd9bd38899 | |cmsis-6 | 1a1799c6c58c47e737bb19523483344a25d29895 | |cmsis-nn | e096196a0c49f065abc03d943c583cd50de424ba | |core-driver | 25.02 | |core-platform | 25.02 | |tensorflow | ef64591270691022a329cf04ba9e73ecfb15ddb8 | +--------------+------------------------------------------+ Vela version used by default has been bumped to 4.2.0. Dependencies not updated with this change: * cmsis-dsp: `v1.16.2` is still the latest stable release * cortex-dfp: No major source change to current `c2c70a97` Change-Id: If5eccbb509e919dd9d101957d0915116a4e036e5 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Feb 05, 2025
-
-
Alex Tawse authored
* Arm Virtual Hardware (AVH) AMI is being deprecated so we are removing references to this in our documentation * Minor typo fix in FVP arguments documentation Change-Id: Id7a7af64d44a4b5295280c5808533040932145c2 Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- Dec 24, 2024
-
-
Kshitij Sisodia authored
Minor change to `cmsis_device` target with the `CMSIS_device_header` definition used instead of `CPU_HEADER_FILE`. This is done to help with portability as other related repositories use this specific definition. Some other changes have been made to address concerns about cyclic dependency on platform headers from VSI camera interface. Platform driver target will not add header path to cmsis_device target so the VSI CMake file doesn't need to know/guess path to platform-drivers target to get to IRQ definitions it needs. Change-Id: Ia6b4d22bcdfb1f44886be7afbd00f53fcbc057ee Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Dec 13, 2024
-
-
Kshitij Sisodia authored
Fix for recent change to use CMake wrapper for building TensorFlow Lite Micro - CMSIS-NN kernels were not being included in the build heavily impacting performance for CPU-only path. This patch has a minor change to correctly set `CORE_SOFTWARE_ACCELERATOR` CMake variable to ensure the CMake wrapper actually adds CMSIS-NN to the build. Also, with the CMake build flow for CMSIS-NN and TensorFlow Lite Micro together, the linker scripts have been modified to allow object file name based memory placement to still work as it was for Makefile based flow earlier. Change-Id: Iedd91d4db7bbaa40603df6a7e93e99274be547d6 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Dec 12, 2024
-
-
Kshitij Sisodia authored
A minor patch to fix an error being wrongly flagged when the audio stream indicated completion. Change-Id: If8e0a1e82322d64fd60aa3351caefeff068c95cc Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Dec 05, 2024
-
-
Alex Tawse authored
Updating submodules to pinned 24.11 components * core-platform: 24.11 tag * core-driver: 24.11 tag * cmsis-nn: 22080c68d040c98139e6cb1549473e3149735f4d * cmsis-dsp: v1.16.2 tag * cmsis-6: 8c4dc58928b3347f6aa98b6fb2bf6770f32a72b7 * tensorflow: f91dd916e5de773fd2150136d025ae2dfd31d48f Vela compiler (fetched from PyPi) version updated to 4.1.0. Change-Id: I07d3d92fa70bbfb8551cf0a2c133ee9101795d29 Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- Nov 26, 2024
-
-
Kshitij Sisodia authored
For `Sram_Only` memory mode the "weights" RO traffic was previously wired through the second set of AXI ports and the timing adapter settings were kept the same as the first set so this traffic also sees the same bandwidth and lateny envelope. However, it is quite possible to see slightly better performance if we only use one set of AXI ports. For Sram_Only memory mode, the Vela compiler schedules the R/W expecting to use only one set so this change also aligns with how Vela intends such a model to be deployed on the NPU. Change-Id: I7b37c3548e2ab00dda55ac1e13a7883f8e588f9f Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Nov 14, 2024
-
-
Alex Tawse authored
* Removed conditional check to prohibit Sram_Only builds for Arm Ethos-U65 and Arm Ethos-U85 * Updated documentation accordingly Change-Id: I3a1473494a746409af3e9a727c8105881d701e68 Signed-off-by:
Alex Tawse <alex.tawse@arm.com>
-
- Nov 05, 2024
-
-
* Moved project to use C11 and C++17 Signed-off-by:
Alex Tawse <alex.tawse@arm.com> Change-Id: I18297ae829df7c54d39d482654915e6e9adbaa87
-
- Nov 04, 2024
-
-
Kshitij Sisodia authored
Adding basic Virtual Streaming Interface (VSI) support for HAL camera interface alongside the default `hal_camera_static_images` library. Platform drivers for MPS3 and MPS4 targets can enable use of this library based on a new CMake configuration parameter `FVP_VSI_ENABLED` By default this is turned OFF. This will allow all vision-based examples to stream images from camera connected to a host machine. Although VSI could also be used to read frames from an input video file on disk (on host), provision for this has not been added. Change-Id: I56bd2fa07742170b146cae51e6ff10ee1900a63f Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Oct 30, 2024
-
-
Alex Tawse authored
* Moving to Vela 4.0.1 * Done primarily to use prebuilt wheels for non-Linux platforms Signed-off-by:
Alex Tawse <alex.tawse@arm.com> Change-Id: I9f55462a2a48d849ec2b5584e3cb5269842167ab
-
Kshitij Sisodia authored
Adding a HAL camera and audio interface to allow these as standard APIs used across use cases. This exercise is primarily to pave the way for adding Virtual Streaming Interface (VSI) support for Arm Fixed Virtual Platforms (FVPs) in future work. However, this also makes the application more portable and easier to add support for physical (camera or microphone) devices, should we choose to do so. This patch is big as it cuts across use cases and HAL layers with platform support. The implementation of baked-in sample images and audio data is quite old in this repository. To wire things up via HAL for something which was only application level required touching quite a few files. General outline of changes: -------------------------- * File generation part has been changed so it generates a self contained set of C files in a separate directory that provide strongly linked functions that HAL camera or audio interface relies on. * Two new "components" (camera and audio) under HAL. They have weak implementations of functions that should be overridden by application sources. The reason for doing it this way is different files are generated for different use cases but the there is only one target we need under HAL - it is built only once but different application sources can override and use this module differently. * All the use cases changed to move away from using the generated files' functions directly. Instead the static baked-in data is now accessed via the HAL provided API's. * Tests for all use cases changed for same reason as above. Byproduct of above changes: -------------------------- * Apps don't need to be interactive (user input). The application level cannot have knowledge of how many baked in samples we have or the filenames. This knowledge only lives below HAL. * Tests which were validating inferences by index have been removed. Change-Id: I09964ce87ea5cea5700d141eef199d3d2be6686c Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Oct 24, 2024
-
-
Kshitij Sisodia authored
Updating the requirements.txt file to fetch later versions of Python packages. Also, the default build script was still using Arm MPS3 targets for latest NPU. Minor update to this script to pick Arm MPS4 based target instead. Change-Id: I3815188a81ae34ffbc85acdfb80b97c9b96cdb42 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Oct 17, 2024
-
-
Kshitij Sisodia authored
Updates to troubleshooting document. Change-Id: I6ffebb20bb3905ab8ec9124f10f49f939918ca07
-
- Oct 15, 2024
-
-
Kshitij Sisodia authored
Allowing some minor customizations for LCD display by passing some additional configuration parameters to the `lcd` component under HAL. - LCD title display can be turned ON/OFF (default is ON). CMake configuration parameter: `LCD_TITLE_EN`. - The title string itself can be changed. CMake configuration parameter: `LCD_TITLE_STRING`. Additionally, at application level, ImageUtils.hpp now has some more colours for background and text colours to choose from. These could potentially be used to drive a "light" or "dark" theme. Change-Id: Ia7c7b4f0e818ce02ba5bc94beac0da390efdf985 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Oct 04, 2024
-
-
Kshitij Sisodia authored
Moving to the latest NPU driver version. This contains fix for Arm Ethos-U85 NPU's PMU. Minor fixes also included for displaying of these counters for the latest Arm Corstone-320 FVP. Change-Id: I281866b407cc133898cca97ad3b775931c367e82 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Oct 02, 2024
-
-
* Adds support for Arm Corstone-320 reference system * Includes support for Arm Ethos-U85 NPU Change-Id: I049d582379d8feb5e969ada82db12f6747d2fd69 Signed-off-by:
Alex Tawse <alex.tawse@arm.com> Co-authored-by:
Codrut-Grigore Irimie <codrut-grigore.irimie@arm.com>
-
Kshitij Sisodia authored
Adding 24.08 version of CMSIS-pack with updated dependencies for use-case-api.yml. This pack has been tested with examples in https://github.com/Arm-Examples/mlek-cmsis-pack-examples . Change-Id: I75f58ab7fffd46460442746583a0119ffda19ce8 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-
- Sep 27, 2024
-
-
Kshitij Sisodia authored
The floating point mode flag `-ffp-mode` was incorrectly set for GNU toolchain in the TensorFlow Lite Micro CMake file. This patch adds check for compiler. Change-Id: I8295d23a4b91f8fec5470ebe036dc358ecc7f595 Signed-off-by:
Kshitij Sisodia <kshitij.sisodia@arm.com>
-