# Deploy ExecuTorch firmware on NXP FRDM i.MX 93 for Ethos-U65 acceleration

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/)
- [Understand ExecuTorch deployment on NXP with Ethos-U](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/1-overview/)
- [Boot the NXP FRDM i.MX 93 board](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/2-boot-nxp/)
- [Set up the ExecuTorch build environment](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/4-environment-setup/)
- [Build and install ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/6-build-executorch/)
- [Build ExecuTorch models for Ethos-U65](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/7-build-executorch-pte/)
- [Build Cortex-M33 firmware for ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/9-build-executorch-runner-for-cm33/)
- [Deploy and test on FRDM-IMX93](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/10-deploy-executorchrunner-nxp-board/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 2 hrs |
| Last updated: | 13 Aug 2026 |

|  |  |
| --- | --- |
| Authors: | Waheed Brown , Arm<br>[GitHub](https://github.com/armwaheed)<br>[LinkedIn](https://linkedin.com/in/waheedbrown)<br>Fidel Makatia Omusilibwa<br>[GitHub](https://github.com/fidel-makatia)<br>[LinkedIn](https://linkedin.com/in/fidel-makatia-hsc-mieee) |
| Arm IP: | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) [Cortex-M](https://support.arm.com/?tab=compute-ip&Product%20Type=Microcontrollers) [Ethos-U](https://support.arm.com/?tab=compute-ip&Product%20Type=Neural%20Processing%20Units) |
| Tags: | [ML](https://learn.arm.com/tag/ml) [Linux](https://learn.arm.com/tag/linux) [macOS](https://learn.arm.com/tag/macos) [Baremetal](https://learn.arm.com/tag/baremetal) [Python](https://learn.arm.com/tag/python) [PyTorch](https://learn.arm.com/tag/pytorch) [ExecuTorch](https://learn.arm.com/tag/executorch) [Arm Compute Library](https://learn.arm.com/tag/arm-compute-library) [GCC](https://learn.arm.com/tag/gcc) |

## Who is this for?

This is an introductory topic for developers and data scientists new to TinyML who want to observe ExecuTorch performance on a physical device.

## What will you learn?

After completing this Learning Path, you'll be able to perform the following tasks:

- Bring up a custom ExecuTorch `executor_runner` firmware on the FRDM i.MX 93 Cortex-M33 using Linux RemoteProc
- Compile an ExecuTorch `.pte` model for Ethos-U65 and run inference with NPU acceleration
- Understand how heterogeneous Arm systems split responsibilities across application cores, microcontrollers, and NPUs

## Prerequisites

Before starting, you'll need the following prerequisites:

- An NXP [FRDM i.MX 93](https://www.nxp.com/design/design-center/development-boards-and-designs/frdm-i-mx-93-development-board:FRDM-IMX93) development board
- A USB Mini-B to USB Type-A cable, or a USB Mini-B to USB Type-C cable
- Completion of [Use Linux on an NXP FRDM i.MX 93 board](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/linux-nxp-board/) (Linux setup, login access, and file transfer)
- Basic knowledge of Machine Learning concepts
- A host computer to compile ExecuTorch libraries

## Summary

You’ll run an ExecuTorch model on the FRDM i.MX 93 Cortex-M33 with Ethos-U65 acceleration. First, you’ll prepare a build environment, compile `executor_runner` firmware and a U65-targeted `.pte` model. Then, you’ll transfer both artifacts to the board. You’ll start the firmware from Linux with RemoteProc and observe inference across the Cortex-M33 and NPU.

## Frequently asked questions

### Which USB connector should I use for the serial console, and what do I need on macOS?

Use the DEBUG USB-C connector on the board. On macOS, install the Silicon Labs USB-to-UART driver and a serial terminal such as `picocom` (for example, install it with `brew install picocom`).

### Why build ExecuTorch inside a Docker container on macOS?

Building inside a Docker container provides an Ubuntu build environment that matches the toolchains used in this Learning Path, and avoids gaps in macOS-native cross-compilers. The container is only for building and produces prebuilt ExecuTorch libraries and `.pte` files that you’ll copy to the FRDM i.MX 93.

### After installing ExecuTorch, how do I confirm the package is available?

Run `pip list | grep executorch` and check that `executorch` appears in the output.

### What artifacts must be present before starting the firmware with Linux RemoteProc?

Copy the U65-compiled `.pte` model and the `executor_runner` ELF to the board. The runner loads the `.pte`, prepares buffers, and invokes the NPU or CPU backend on the Cortex-M33.

### What output should I expect when the MobileNet V2 model compiles successfully?

The compilation output reports the number of NPU operators and their coverage. For the example MobileNet V2 model, expect an output reporting 100% NPU utilization.
