i.MX Linux Reference Manual (RM00293)
Reference manual for the NXP i.MX Linux Board Support Package (BSP), covering kernel 6.18.2 integration, hardware drivers, and peripheral support for i.MX 6, 7, 8, and 9 processors.
Overview
The i.MX Linux Reference Manual (RM00293) provides comprehensive documentation for the Linux Board Support Package (BSP) supporting NXP i.MX application processors. Based on Linux kernel version 6.18.2, the manual details the software interfaces required to connect the standard open-source kernel to i.MX hardware. It covers the Machine-Specific Layer (MSL), including interrupts, timers, and GPIO/IOMUX, as well as essential drivers for power management, thermal monitoring, and connectivity. Specific peripheral support includes Ethernet (FEC/ENET/NETC), FlexCAN, PCIe, USB, and various storage interfaces like NAND, SPI NOR, and SATA. Additionally, the document outlines multimedia capabilities including Video Processing Units (VPU), JPEG encoders/decoders, and ALSA audio drivers for the i.MX 6, 7, 8, and 9 series platforms.
Use Cases
- Developing embedded Linux operating systems for NXP i.MX processors
- Configuring hardware-specific drivers for i.MX peripherals and connectivity
- Implementing power management and thermal protection in Linux-based designs
- Integrating multimedia acceleration and audio functionality into i.MX systems
- Managing storage and memory interfaces including NAND, SPI NOR, and SD/MMC
Topics
Referenced Parts
i.MX 6Dual
NXP
i.MX 6SoloX i.MX 6Quad i.MX 6Dual
i.MX 6DualLite
NXP
i.MX 6 Family: 6QuadPlus, 6Quad, 6DualLite
i.MX 6Quad
NXP
i.MX 6 Family: 6QuadPlus, 6Quad, 6DualLite
i.MX 6QuadPlus
NXP
i.MX 6 Family: 6QuadPlus
i.MX 6SLL
NXP
i.MX 6 Family: ... 6SLL, 6UltraLite
i.MX 6Solo
NXP
i.MX 6QuadPlus/Quad/Dual/Solo
i.MX 6SoloX
NXP
i.MX 6 Family: ... 6SoloX, 6SLL, 6UltraLite
i.MX 6ULL
NXP
i.MX 6 Family: ... 6ULL, 6ULZ
i.MX 6ULZ
NXP
i.MX 6 Family: ... 6ULZ
i.MX 6UltraLite
NXP
i.MX 6 Family: ... 6UltraLite, 6ULL, 6ULZ
i.MX 7Dual
NXP
i.MX 7 Family: 7Dual, 7ULP
i.MX 7ULP
NXP
i.MX 7 Family: 7Dual, 7ULP
i.MX 8DXL
NXP
i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX
i.MX 8DualX
NXP
i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX
i.MX 8M Mini
NXP
i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano
i.MX 8M Nano
NXP
i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano
i.MX 8M Plus
NXP
i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano
i.MX 8M Quad
NXP
i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano
i.MX 8QuadMax
NXP
i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP
i.MX 8QuadPlus
NXP
i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP
i.MX 8QuadXPlus
NXP
i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX
i.MX 8ULP
NXP
i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP
i.MX 91
NXP
i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943
i.MX 93
NXP
i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943
i.MX 943
NXP
i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943
i.MX 95
NXP
i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943
adv7535
Analog Devices
• MIPI-DSI to HDMI: using Analog Devices adv7535
MAX9271
Maxim
a Maxim MAX9271 Serializer and a Maxim MAX9286 Deserializer. Up to four OV10635 cameras may be
MAX9286
Maxim
Video decoders -> Maxim MAX9286 GMSL deserializer support (VIDEO_MAX9286) and Device Drivers
MAX96724
Maxim
Maxim MAX96724 GMSL deserializer support
FXOS8700
NXP
• Drivers -> Industrial I/O -> Inertial measurement units -> NXP FXOS8700 I2C driver
MMA8452Q
NXP
• Drivers -> Industrial I/O -> Accelerometers -> Freescale/NXP MMA8452Q
P3T1085
NXP
• Drivers -> Industrial I/O support -> Temperature sensors -> NXP P3T1085 temprature sensor
i.MX8
NXP
sensor driver for NXP i.MX8 SoCs
AP1302
onsemi
external ISP, Onsemi AP1302, to process the raw image and provide an sRGB image.
AR0144
onsemi
The Onsemi AR0144 camera is supported on the i.MX 9 family. The AR0144 is a raw camera, but it uses an
drivers/usb/dwc3/dwc3-imx8mp.c
NXP
drivers/usb/dwc3/dwc3-imx8mp.c NXP IMX specific Glue driver for i.MX 8M Plus and i.MX 95
drivers/usb3/cdns3/cdns3-
NXP
drivers/usb3/cdns3/cdns3-nxp-reg-def.h Register definitions
ATA-8
Samsung
ata1.00: ATA-8: SAMSUNG HM100UI, 2AM10001, max UDMA/133
| FXAS21002C | NXP | • Drivers -> Industrial I/O -> Digital gyroscope sensors -> NXP FXAS21002C Gyro Sensor |
| HM100UI | Samsung | scsi 0:0:0:0: Direct-Access ATA SAMSUNG HM100UI 2AM1 PQ: 0 ANSI: 5 |
| HM100UI | Samsung | ata1.00: ATA-8: SAMSUNG HM100UI, 2AM10001, max UDMA/133 |
| MT9M114 | Onsemi | The Onsemi MT9M114 is supported on i.MX 91 and i.MX 93. |
| i.MX 6Dual | NXP | i.MX 6SoloX i.MX 6Quad i.MX 6Dual |
| i.MX 6DualLite | NXP | i.MX 6 Family: 6QuadPlus, 6Quad, 6DualLite |
| i.MX 6Quad | NXP | i.MX 6 Family: 6QuadPlus, 6Quad, 6DualLite |
| i.MX 6QuadPlus | NXP | i.MX 6 Family: 6QuadPlus |
| i.MX 6SLL | NXP | i.MX 6 Family: ... 6SLL, 6UltraLite |
| i.MX 6Solo | NXP | i.MX 6QuadPlus/Quad/Dual/Solo |
| i.MX 6SoloX | NXP | i.MX 6 Family: ... 6SoloX, 6SLL, 6UltraLite |
| i.MX 6ULL | NXP | i.MX 6 Family: ... 6ULL, 6ULZ |
| i.MX 6ULZ | NXP | i.MX 6 Family: ... 6ULZ |
| i.MX 6UltraLite | NXP | i.MX 6 Family: ... 6UltraLite, 6ULL, 6ULZ |
| i.MX 7Dual | NXP | i.MX 7 Family: 7Dual, 7ULP |
| i.MX 7ULP | NXP | i.MX 7 Family: 7Dual, 7ULP |
| i.MX 8DXL | NXP | i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX |
| i.MX 8DualX | NXP | i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX |
| i.MX 8M Mini | NXP | i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano |
| i.MX 8M Nano | NXP | i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano |
| i.MX 8M Plus | NXP | i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano |
| i.MX 8M Quad | NXP | i.MX 8M Family: 8M Plus, 8M Quad, 8M Mini, 8M Nano |
| i.MX 8QuadMax | NXP | i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP |
| i.MX 8QuadPlus | NXP | i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP |
| i.MX 8QuadXPlus | NXP | i.MX 8X Family: 8QuadXPlus, 8DXL, 8DualX |
| i.MX 8ULP | NXP | i.MX 8 Family: 8QuadMax, 8QuadPlus, 8ULP |
| i.MX 91 | NXP | i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943 |
| i.MX 93 | NXP | i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943 |
| i.MX 943 | NXP | i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943 |
| i.MX 95 | NXP | i.MX 9 Family: i.MX 91, i.MX 93, i.MX 95, i.MX 943 |
| adv7535 | Analog Devices | • MIPI-DSI to HDMI: using Analog Devices adv7535 |
| MAX9271 | Maxim | a Maxim MAX9271 Serializer and a Maxim MAX9286 Deserializer. Up to four OV10635 cameras may be |
| MAX9286 | Maxim | Video decoders -> Maxim MAX9286 GMSL deserializer support (VIDEO_MAX9286) and Device Drivers |
| MAX96724 | Maxim | Maxim MAX96724 GMSL deserializer support |
| FXOS8700 | NXP | • Drivers -> Industrial I/O -> Inertial measurement units -> NXP FXOS8700 I2C driver |
| MMA8452Q | NXP | • Drivers -> Industrial I/O -> Accelerometers -> Freescale/NXP MMA8452Q |
| P3T1085 | NXP | • Drivers -> Industrial I/O support -> Temperature sensors -> NXP P3T1085 temprature sensor |
| i.MX8 | NXP | sensor driver for NXP i.MX8 SoCs |
| AP1302 | onsemi | external ISP, Onsemi AP1302, to process the raw image and provide an sRGB image. |
| AR0144 | onsemi | The Onsemi AR0144 camera is supported on the i.MX 9 family. The AR0144 is a raw camera, but it uses an |
| drivers/usb/dwc3/dwc3-imx8mp.c | NXP | drivers/usb/dwc3/dwc3-imx8mp.c NXP IMX specific Glue driver for i.MX 8M Plus and i.MX 95 |
| drivers/usb3/cdns3/cdns3- | NXP | drivers/usb3/cdns3/cdns3-nxp-reg-def.h Register definitions |
| ATA-8 | Samsung | ata1.00: ATA-8: SAMSUNG HM100UI, 2AM10001, max UDMA/133 |