Skip to content

Latest commit

 

History

History
99 lines (77 loc) · 7.64 KB

File metadata and controls

99 lines (77 loc) · 7.64 KB

i.MX 93 — Test & Result Matrix

Machine imx93-11x11-evk, branch imx93-dev. Per IP block: what is modelled, to what fidelity, and the evidence. The mission bar: stand in for a real board for developers running their own code — no silent failure on a known-good IP block or routine. See fidelity-audit.md for the carried caveats and the honest-fault discipline.

Status column source: real meson testlog.

Fidelity tiers

Tier Meaning
A Data path verified — real data/compute flows through the block and is checked against a golden or reference (end-to-end in-guest and/or qtest with golden output).
B Driver bring-up — the stock BSP Linux driver probes and operates the block (registers, IRQs, basic transactions); correct for bring-up but no golden-verified host data path. QEMU's usual peripheral convention.
C Registration / stub — present so Linux enumerates it and does not fault; minimal or no functional behaviour.
N/A Not present on i.MX 93 (documented so the absence is not mistaken for a gap).

Test harnesses

Harness Location Scope Result
Unit (pure logic) tests/unit/test-ethos-u-{cmdstream,mlw,kernels,requant} NPU decoder / weight (mlw) / int8 kernels / requant, host-only PASS (4)
qtest (device) tests/qtest/ethos-u-test, imx93-*-test MMIO-level device behaviour, golden compares PASS (8)
Functional (boot) upstream/test_imx93_evk.py (staged for upstream) Boot stock BSP Linux to userspace PASS (attested)
Media conformance tests/media-conformance/ v4l2-compliance (ISI), modetest (LCDIF/KMS) 36 PASS / 0 FAIL / 26 SKIP (attested)
Torture / concurrency tests/torture/ Live desktop while NPU/CPU/storage/net hammer 0 oops / 0 wedge (attested)
Soak (run log) 24 h comprehensive, all datapaths concurrent PASS 2026-06-13 — 11 cycles, 61 boots, 0 incidents, RSS flat (attested)
Inter-QEMU USB (mission #5) tests/usbredir-imx93/ (host end) usb-redir imx93 host <-> MCX device: enumerate (HS) + vendor bulk-echo + CDC-ACM /dev/ttyACM0, byte-exact PASS — bulk 64B echoed byte-for-byte; CDC ttyACM round-trip; proven on imx93 + imx91 hosts (attested)
Inter-QEMU interconnect (board-to-board) tests/interconnect-imx93/ (run-{eth,uart,spi,can,i2c}.sh + run-spi-mcx.sh) Two instances bridged by a QEMU socket, real data crosses byte-exact: FEC eth, LPUART2, LPSPI1 (spi-link), FlexCAN (can-host-chardev), LPI2C3 (i2c-link); + cross-SoC 93<->MCX/91/95 PASS — eth/UART/SPI/CAN/I2C each byte-exact b2b; full cross-SoC matrix (91/93/95/MCX) closed (attested)

Compute / boot core

Block Tier Status Evidence Notes
Dual Cortex-A55 SMP A Boots stock BSP Linux to userspace, SMP Not cycle-accurate
Cortex-M33 + RPMsg (MU) A Real NXP firmware boots; A55<->M33 RPMsg live Concurrent M33 boot can wedge the desktop guest — NXP BSP defects, not the model
eDMA1 / eDMA2 A Drives SAI audio (cyclic, drain-paced); live
CCM / ANATOP / SRC / power B Linux programs clocks/PLLs/resets directly (no System Manager) The defining i.MX93-vs-95 difference — modelled, not SCMI-stubbed
OCOTP / ELE / BBNSM / SEMA42 B Driver probe + mailbox / register transactions EdgeLock Enclave mailbox functional
SYSCTR / TSTMR / TPM / WDOG / TMU B Timers/thermal/watchdog driver bring-up

Networking / storage

Block Tier Status Evidence Notes
FEC (imx_fec) A Real traffic + DHCP; torture drives live FEC; board-to-board byte-exact (run-eth.sh)
eQOS (dwmac) A Real traffic + DHCP
uSDHC (SD/eMMC) A Boots rootfs from SD
USB (Chipidea host) A Real USB devices enumerate in-guest; inter-QEMU usb-redir link byte-exact — vendor bulk-echo (64B) + CDC-ACM /dev/ttyACM0 round-trip vs MCX gadget, on imx93 + imx91 hosts PORTSC.PSPD fix drives HS enumeration; mission #5 USB data path complete

Display / graphics / camera / audio

Block Tier Status Evidence Notes
LCDIFv3 -> MIPI-DSI -> ADV7535 -> HDMI A Pixels scanned out 1920x1080; modetest 7 formats + pageflip + SMPTE screendump Login/typeable console; Weston desktop
Media Block Control B Display/camera muxing for the above
PXP (G2D 2D engine) A PASS (1) copy/fill/blit/blend/rotate byte-exact (qtest + e2e); Weston composites through PXP scale + CSC not modelled — libg2d/pxp_dma_v3 stack limit, not a model gap
ISI + MIPI-CSI + MT9M114 / OV5640 A PASS (1) Real V4L2 frames to /dev/video0; v4l2-compliance 48/48 ioctl + 55/55 streaming
SAI3 + WM8962 codec A PASS (1) Real PCM playback + WAV capture (-audio driver=wav) SAI access width pinned to 16-bit for eDMA S16 writes
MICFIL (PDM mic) / XCVR B Driver bring-up

Accelerator (NPU)

Block Tier Status Evidence Notes
Ethos-U65 microNPU A PASS (5) uint8 MobileNet end-to-end via eIQ delegate, argmax == host; bit-exact int8 across real CNNs; qtest conv golden + honest-fault; unit tests (mlw/kernels/requant/cmdstream) Opt-in honest-fault (see fidelity-audit.md); mlw decoder Apache-2.0 (upstream blocker, NPU-only); nasnet +/-1 residual capped

Expansion buses (developer-attachable)

Block Tier Status Evidence Notes
LPI2C x8 A PASS (1) qtest; -device bus=lpi2cN attachable; board-to-board byte-exact via i2c-link (run-i2c.sh)
LPSPI x8 A PASS (1) qtest; board-to-board byte-exact via spi-link (run-spi.sh); cross-SoC 93<->MCX / 93<->95 / 91<->93 PARAM.PCSNUM + per-frame FCF fixes let the real fsl-lpspi bind + move data
LPUART x8 A Serial console; DMA-mode RX (cyclic eDMA); board-to-board byte-exact (run-uart.sh)
FlexIO B PASS (1) qtest (I2C master)
FlexSPI B PASS (1) qtest (NOR bring-up)
FlexCAN / CAN bus A Board-to-board byte-exact via can-host-chardev (run-can.sh); cross-SoC 91<->93 can-host-chardev bridges a can-bus to a chardev — no host vcan/SocketCAN needed
GPIO / PMIC B Poweroff, GPIO-idle-HIGH; PMIC over I2C
ADC B Driver bring-up

Not present on this SoC (N/A — documented)

Block Why N/A
System Manager / SCMI i.MX93 has none — Linux programs CCM/ANATOP/SRC directly (vs i.MX95)
Hardware JPEG (CAST) i.MX95-only block; JPEG on i.MX93 is software
GPU (compute) No emulatable GPU compute; Linux sees the node but 3D is not executed

Known caveats (carried, not silent)

Area Boundary Disposition
M33 concurrent boot Booting the M33 while the desktop guest runs can wedge the guest Two NXP BSP defects, documented in tests/torture/; not a model bug
PXP G2D scale + CSC not modelled libg2d/pxp_dma_v3 vendor stack rejects the op; copy/fill/blit/blend/rotate byte-exact
NPU mlw decoder hw/npu/mlw is Apache-2.0 Upstream-licensing blocker for the NPU only; does not block the core machine
NPU nasnet +/-1-rounding accumulation, occasional argmax flip on the deepest degenerate-int8 model Isolation-blocked and capped; all real trained workloads tested are bit-exact