MR-NavQ95B
Overview
The NXP MR-NAVQ95 [8] is an open-source development board designed for mobile robotics applications. It is based on the NXP i.MX95 applications processor and provides heterogeneous multicore processing capabilities suitable for combining real-time workloads with high-performance application processing.
The platform integrates Cortex-A55 application cores alongside Cortex-M7 and Cortex-M33 real-time cores. In Zephyr, support is currently focused on the Cortex-M7 core, which is typically the target for real-time firmware.
Hardware
Processor
NXP i.MX95 SoC
6x Arm Cortex-A55 cores
1x Arm Cortex-M7 core
1x Arm Cortex-M33 core
Memory
On-chip SRAM: 1376 KiB (ECC)
External LPDDR5: 16 GiB (with inline ECC and encryption)
External Flash: 64 MiB Octal SPI NOR
Supported Features
The mr_navq95b board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
mr_navq95b/mimx9596/m7 target
On-target memory for this board target: 256 KiB of RAM, 256 KiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
NXP successive-approximation ADC (SAR ADC) controller1 |
|
ARM architecture |
on-chip |
i.MX DTCM (Data Tightly Coupled Memory)1 |
|
CAN |
on-chip |
||
Counter |
on-chip |
NXP LPTMR2 |
|
on-chip |
NXP Low Power Periodic Interrupt Timer (LPIT)2 |
||
on-chip |
Child node for the Low Power Periodic Interrupt Timer node, intended for an individual timer channel8 |
||
DAI |
on-chip |
NXP Synchronous Audio Interface (SAI)1 |
|
Display |
on-chip |
socionext DPU display controller for DSI panels1 |
|
DMA |
on-chip |
NXP MCUX EDMA controller2 |
|
Ethernet |
on-chip |
NXP i.MX NETC Block Controller1 |
|
on-chip |
NXP i.MX NETC Controller1 |
||
on-chip |
NXP i.MX NETC Physical Station Interface (PSI)3 |
||
on-chip |
NXP i.MX NETC External MDIO controller1 |
||
on-chip |
NXP NETC PTP (Precision Time Protocol) Clock1 |
||
Firmware |
on-chip |
SCMI (System Control and Management Interface) SHMEM (shared memory)1 |
|
on-chip |
SCMI (System Control and Management Interface) with doorbell and SHMEM (shared memory) transport1 |
||
on-chip |
SCMI (System Control and Management Interface) power domain protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) system power protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) clock protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) pinctrl protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) cpu domain protocol1 |
||
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
||
I2S |
on-chip |
NXP mcux SAI-I2S controller1 |
|
I3C |
on-chip |
||
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
|||
on-chip |
|||
Mailbox |
on-chip |
||
MIPI-DSI |
on-chip |
NXP MCUX MIPI DSI DWC1 |
|
Miscellaneous |
on-chip |
NXP FlexIO controller2 |
|
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-board |
NXP FlexSPI MX25UM51345G1 |
|
on-board |
Flash node1 |
||
Pin control |
on-chip |
The node has the ‘pinctrl’ node label set in MCUX SoC’s devicetree1 |
|
Power domain |
on-chip |
SCMI (System Control and Management Interface) power domain2 |
|
PWM |
on-chip |
||
Sensors |
on-board |
BMI08X Accel inertial measurement unit1 |
|
on-board |
BMI08X Gyro inertial measurement unit1 |
||
on-board |
ICM45686 High-precision 6-axis motion tracking device When setting the accel-pm, accel-range, accel-odr, gyro-pm, gyro-range, gyro-odr properties in a .dts or .dtsi file you may include icm45686.h and use the macros defined there1 |
||
on-board |
The BMP581 is a Barometric pressure sensor on I3C1 |
||
on-board |
Bosch BMM350 Geomagnetic sensor1 |
||
Serial controller |
on-chip |
||
SPI |
on-chip |
NXP FlexSPI controller1 |
|
on-chip |
|||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
Watchdog |
on-chip |
NXP watchdog (WDOG32)1 |
mr_navq95b/mimx9596/m7/ddr target
On-target memory for this board target: 4 MiB of RAM, N/A of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
NXP successive-approximation ADC (SAR ADC) controller1 |
|
ARM architecture |
on-chip |
i.MX DTCM (Data Tightly Coupled Memory)1 |
|
CAN |
on-chip |
||
Counter |
on-chip |
NXP LPTMR2 |
|
on-chip |
NXP Low Power Periodic Interrupt Timer (LPIT)2 |
||
on-chip |
Child node for the Low Power Periodic Interrupt Timer node, intended for an individual timer channel8 |
||
DAI |
on-chip |
NXP Synchronous Audio Interface (SAI)1 |
|
Display |
on-chip |
socionext DPU display controller for DSI panels1 |
|
DMA |
on-chip |
NXP MCUX EDMA controller2 |
|
Ethernet |
on-chip |
NXP i.MX NETC Block Controller1 |
|
on-chip |
NXP i.MX NETC Controller1 |
||
on-chip |
NXP i.MX NETC Physical Station Interface (PSI)3 |
||
on-chip |
NXP i.MX NETC External MDIO controller1 |
||
on-chip |
NXP NETC PTP (Precision Time Protocol) Clock1 |
||
Firmware |
on-chip |
SCMI (System Control and Management Interface) SHMEM (shared memory)1 |
|
on-chip |
SCMI (System Control and Management Interface) with doorbell and SHMEM (shared memory) transport1 |
||
on-chip |
SCMI (System Control and Management Interface) power domain protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) system power protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) clock protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) pinctrl protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) cpu domain protocol1 |
||
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
||
I2S |
on-chip |
NXP mcux SAI-I2S controller1 |
|
I3C |
on-chip |
||
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
|||
on-chip |
|||
Mailbox |
on-chip |
||
MIPI-DSI |
on-chip |
NXP MCUX MIPI DSI DWC1 |
|
Miscellaneous |
on-chip |
NXP FlexIO controller2 |
|
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-board |
NXP FlexSPI MX25UM51345G1 |
|
on-board |
Flash node1 |
||
Pin control |
on-chip |
The node has the ‘pinctrl’ node label set in MCUX SoC’s devicetree1 |
|
Power domain |
on-chip |
SCMI (System Control and Management Interface) power domain2 |
|
PWM |
on-chip |
||
Sensors |
on-board |
BMI08X Accel inertial measurement unit1 |
|
on-board |
BMI08X Gyro inertial measurement unit1 |
||
on-board |
ICM45686 High-precision 6-axis motion tracking device When setting the accel-pm, accel-range, accel-odr, gyro-pm, gyro-range, gyro-odr properties in a .dts or .dtsi file you may include icm45686.h and use the macros defined there1 |
||
on-board |
The BMP581 is a Barometric pressure sensor on I3C1 |
||
on-board |
Bosch BMM350 Geomagnetic sensor1 |
||
Serial controller |
on-chip |
||
SPI |
on-chip |
NXP FlexSPI controller1 |
|
on-chip |
|||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
Watchdog |
on-chip |
NXP watchdog (WDOG32)1 |
mr_navq95b/mimx9596/m7/flash target
On-target memory for this board target: 256 KiB of RAM, 64 MiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
NXP successive-approximation ADC (SAR ADC) controller1 |
|
ARM architecture |
on-chip |
i.MX DTCM (Data Tightly Coupled Memory)1 |
|
CAN |
on-chip |
||
Counter |
on-chip |
NXP LPTMR2 |
|
on-chip |
NXP Low Power Periodic Interrupt Timer (LPIT)2 |
||
on-chip |
Child node for the Low Power Periodic Interrupt Timer node, intended for an individual timer channel8 |
||
DAI |
on-chip |
NXP Synchronous Audio Interface (SAI)1 |
|
Display |
on-chip |
socionext DPU display controller for DSI panels1 |
|
DMA |
on-chip |
NXP MCUX EDMA controller2 |
|
Ethernet |
on-chip |
NXP i.MX NETC Block Controller1 |
|
on-chip |
NXP i.MX NETC Controller1 |
||
on-chip |
NXP i.MX NETC Physical Station Interface (PSI)3 |
||
on-chip |
NXP i.MX NETC External MDIO controller1 |
||
on-chip |
NXP NETC PTP (Precision Time Protocol) Clock1 |
||
Firmware |
on-chip |
SCMI (System Control and Management Interface) SHMEM (shared memory)1 |
|
on-chip |
SCMI (System Control and Management Interface) with doorbell and SHMEM (shared memory) transport1 |
||
on-chip |
SCMI (System Control and Management Interface) power domain protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) system power protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) clock protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) pinctrl protocol1 |
||
on-chip |
SCMI (System Control and Management Interface) cpu domain protocol1 |
||
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
||
I2S |
on-chip |
NXP mcux SAI-I2S controller1 |
|
I3C |
on-chip |
||
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
|||
on-chip |
|||
Mailbox |
on-chip |
||
MIPI-DSI |
on-chip |
NXP MCUX MIPI DSI DWC1 |
|
Miscellaneous |
on-chip |
NXP FlexIO controller2 |
|
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-board |
NXP FlexSPI MX25UM51345G1 |
|
on-board |
Flash node1 |
||
Pin control |
on-chip |
The node has the ‘pinctrl’ node label set in MCUX SoC’s devicetree1 |
|
Power domain |
on-chip |
SCMI (System Control and Management Interface) power domain2 |
|
PWM |
on-chip |
||
Sensors |
on-board |
BMI08X Accel inertial measurement unit1 |
|
on-board |
BMI08X Gyro inertial measurement unit1 |
||
on-board |
ICM45686 High-precision 6-axis motion tracking device When setting the accel-pm, accel-range, accel-odr, gyro-pm, gyro-range, gyro-odr properties in a .dts or .dtsi file you may include icm45686.h and use the macros defined there1 |
||
on-board |
The BMP581 is a Barometric pressure sensor on I3C1 |
||
on-board |
Bosch BMM350 Geomagnetic sensor1 |
||
Serial controller |
on-chip |
||
SPI |
on-chip |
NXP FlexSPI controller1 |
|
on-chip |
|||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
Watchdog |
on-chip |
NXP watchdog (WDOG32)1 |
Connectivity
The NXP MR-NAVQ95 [8] consists of a base board which can be extended with optional add-on modules for additional interfaces and functionality. This block diagram [10] provides an overview of the extension boards and the peripherals that are available for use.
These interfaces are multiplexed and depend on board configuration and pinmux settings of the i.MX95 platform.
Serial Console
The default serial console is routed to UART2 interface. It can be accessed through a USB-to_UART bridge on the USB-C connector (J10) on the I/O expansion board. Alternatively, UART2 is also available on a dedicated JST-GH board connector (J2) on the main board.
Build and run Hello World
It is recommended to have the NavQ95 image installed on the SD-card. This will initialise the M33 and the A55 cores and allows to run the zephyr firmware from external flash by running MCUBoot on the M7 at startup. Build and download instructions for this SD-card image can be found on NXP IMX-MANIFEST-NAVQ95 [9]
To build a Zephyr application for the MR-NAVQ95B on ITCM:
west build -b mr_navq95b/mimx9596/m7 samples/hello_world/
To build the application to run from the MX25UM51345G external flash:
west build -b mr_navq95b/mimx9596/m7/flash samples/hello_world/
Uploading the binary can be performed using a Segger/J-Link probe connected to port J7:
west flash
Note
You need to have support for the mimx95_cm7_mx25um target in PyOCD to flash the binary onto the external flash. At the time of writing this support is not yet pulled in.
Follow this procedure to get PyOCD with support for mimx95_cm7_mx25um:
Install pyocd to flash the image through the on-board JTAG device.
Clone pyocd into a directory of your preference and checkout the pr-imx95 branch:
git clone https://github.com/NXP-Robotics/pyOCD -b pr-imx95
Build pyocd:
cd pyocd-private python3 -m pip install .
When running the firmware from external flash, the standard boot flow involves:
System Manager (Cortex-M33) initializes the system
MCUBoot is loaded into TCM
MCUBoot validates firmware in external flash
Firmware executes from flash (XIP)