跳转到内容
新建笔记

i.MX8MP 系统图谱:互连、外设与能力边界

i.MX8M Plus 是由 Cortex-A53、Cortex-M7、多媒体加速器、片上互连和大量外设组成的异构 SoC。阅读框图时,先区分“芯片里有这个模块”“当前料号包含这个功能”“板上把接口引出来了”和“软件已经支持并配置好”;这四件事不能互相替代。

本文按 NXP RM Rev.3 与工业级数据手册 Rev.2.2 整理系统框图。数量与峰值属于相应芯片配置,实际功能集、工作频率和温度等级仍取决于订货料号及工作点。

i.MX8M Plus 系统框图,包含 A53、M7、互连、存储、多媒体、安全与外设模块

1. 处理器、互连与观测模块

跳转到“1. 处理器、互连与观测模块”

四核 Cortex-A53 负责通用操作系统和应用,每核具有 32 KiB 指令缓存与 32 KiB 数据缓存,共享 512 KiB L2。工业级数据手册列出的 A53 最高频率为 1.6 GHz。Cortex-M7 最高 800 MHz,具有各 32 KiB 的 I-cache/D-cache,以及合计 256 KiB 的 TCM,适合实时处理、低功耗任务和主核卸载。

模块作用阅读边界
NoC/AXI 仲裁把多个主控的访问送往目标并仲裁竞争不是一根所有设备轮流占用的简单导线;不同路径仍可能争用 DDR
QoSC配置 AXI 事务优先级和限制优先级不等于端到端硬实时保证,不能靠调高 GPU 优先级解决所有卡顿
PERFMON观测 AXI 总线活动可统计的事件、计数器数量和采样方法以具体模块为准,不默认每条通道都有完整延迟直方图
DBGMON支持记录系统复位前的 AXI 事务需配置触发、记录方式和读取路径,不能当作无需设置的永久故障录像

性能分析应先确认瓶颈是算力、内存访问、外设速率还是软件调度,再选择 CPU PMU、总线监测或跟踪工具。某个模块支持监测,并不意味着系统已保存了崩溃前的数据。

2. 时钟、复位与低功耗

跳转到“2. 时钟、复位与低功耗”

CCM 提供集中式时钟生成和控制,多个 root 使用相近的 MUX、分频、门控编程模型。实际路径仍包含 PLL、固定分频、root PRE/POST 和模块内部时钟,不能把“简化时钟树”解释成所有时钟都只有 root/leaf 两层。

SRC 负责复位的产生和分发,GPC 管理电源域及握手,温度监测模块提供可编程阈值。降频、关断或告警如何响应,还取决于软件策略和板级供电设计。复位原因也要结合有效状态位与清除行为读取。

资源域可以让 M7 在 A53 进入特定低功耗状态后继续工作,但前提是所需时钟、存储器、电源域和外设均被保留。域门控并不会自动隔离共享 PLL 或 root 的修改。具体初始化见 SDK 启动说明。

RM 概述列出 160 路共享外设中断,路由到 A53 GIC 与 M7 NVIC,以支持不同的软件分工。这不代表两边可以同时无协议地处理同一个外设:状态清除、缓冲区、寄存器和中断使能仍需明确所有者。

GIC 的 SPI 相对编号、GIC INTID、Linux 虚拟 IRQ 与 M7 IRQn 是不同编号空间。例如 PWM3 的 SPI 相对编号与 M7 IRQn 都为 83,但其 GIC INTID 为 115;应用不能只比较数字。

三组 SDMA 引擎的 IP 类似,SoC 集成时服务的外设不同:SDMA1 面向 UART、SPI 等通用低速外设;SDMA2/3 面向 SAI1/2/3/5/6/7、SPDIF、PDM 等音频接口。实际可连接的请求源、脚本和总线路径应查对应实例的表,不能把 I²C、CAN、PWM 或 ADC 一概列为可直接使用的 SDMA 请求。

SDMA 通过描述符、脚本与请求机制减少 CPU 搬运,但驱动仍要准备和回收缓冲区、处理错误和缓存一致性。采样率、I²S/TDM 格式由音频链路配置决定,不能说是 DMA 控制器本身“支持所有音频格式”。32 个虚拟通道也不等于 32 根独立物理中断线。

以 UART 115200 bit/s、8N1 为例,每字节在线路上至少占 10 bit,理想净速率约 11520 byte/s;DMA 改善的是 CPU 开销,不会提高 UART 线速。

4. 片上存储与外部存储

跳转到“4. 片上存储与外部存储”
存储块容量主要用途与条件
Boot ROM256 KiB固化启动代码;并非所有启动流程都先把完整镜像放进 DDR
OCRAM576 KiBSUPERMIX 内片上 RAM,可用于启动及经分配的代码/数据;不是 TCM
OCRAM_A256 KiBAUDIOMIX 内系统 RAM,访问依赖该域状态与权限
OCRAM_S36 KiB用于状态保持;数据是否保留取决于具体低功耗模式和供电,不能概括为任何掉电都不丢
M7 TCM128 KiB ITCM + 128 KiB DTCM紧耦合代码/数据存储;与上面的 868 KiB OCRAM 总量分开计算

外部 DDR 接口总宽度为 32 bit,支持 LPDDR4-4000 与 DDR4-3200。理想峰值分别为:

4000×106×328=16×109  byte/s4000\times10^6\times\frac{32}{8}=16\times10^9\;\mathrm{byte/s}

以及 12.8 GB/s。32 bit 已是总数据宽度,不能再乘一次“两通道”。这些是总线理论峰值,实际吞吐还受刷新、访问模式、仲裁和其他主控影响;地址空间容量也不等于板上已焊容量。

其他存储接口包括 8 bit NAND,支持 Raw SLC/MLC、最高 62 bit BCH ECC 和 ONFi3.2;数据手册列出的接口速率最高 200 MB/s,实际取决于器件与模式。eMMC 5.1 的两路接口为 uSDHC1 与 uSDHC3。三个 SPI 接口可连接 SPI NOR;FlexSPI 另外支持一颗 Octal SPI 或两颗相同 Quad SPI 的并行读取,并可为 M7 提供 XIP。

支持 XIP 不代表可以直接关闭 DDR:代码、栈、数据、中断向量和运行依赖都需放在仍可访问的存储器中。

资源数量用途
A53 generic timer每核一组以系统计数器为基础的操作系统计时和定时事件
Global system counter系统计数资源向 A53 generic timer 提供共同时间基准
M7 SysTick1本核周期中断,频率由实际时钟与 reload 配置决定
GPT632 位计数、输入捕获、输出比较等
WDOG3超时检测与复位策略,低功耗行为需逐项配置
PWM416 位周期/采样值、12 位预分频器与四项 FIFO

原文中的“SysTick 从 12 MHz 起”“GPT 可任意上下计数”“PWM 自带互补输出与死区”不能从这里的模块数量推导。i.MX8MP 的这组 PWM 应按其自身寄存器使用,不能套用电机控制 PWM IP 的能力。其基本频率公式为 fPWM=froot/[(PRESCALER+1)(PERIOD+2)]f_{PWM}=f_{root}/[(PRESCALER+1)(PERIOD+2)],详见 PWM 配置说明。

6. 图形、视频、摄像头与显示

跳转到“6. 图形、视频、摄像头与显示”
模块RM/数据手册给出的能力不应混淆的指标
2D GPU、3D GPU图形加速、合成;工业级数据手册列出 16 GFLOPS 单精度峰值API 版本还取决于 GPU 驱动/BSP,不保证所有应用达到峰值
VPU 解码1080p60 H.264、H.265、VP8、VP9,具体 profile 受各解码器约束HDMI 可显示 4K 不等于 VPU 可硬解 4K
VPU 编码1080p60 H.264/H.265ISP 的 4Kp45 处理能力不是 4Kp45 编码能力
NPU标称 2.3 TOP/s 神经网络运算能力模型算子支持、精度、转换和内存开销决定实际推理速度
双 ISP总计 375 Mpixel/s,示例为单摄 12MP30/4K45 或双摄各 1080p80这些模式有工作点、输入时序和并行资源约束
ISI图像处理与总线主控搬运,服务最多两路摄像头不能由名称推断为任意 BT.656/BT.1120 并行摄像头插口

显示侧有三个 LCDIF,分别连接 MIPI DSI、LVDS 和 HDMI,每个 LCDIF 在概述中按单图层描述;图层合成需求应结合 GPU/其他软件路径处理。输入像素深度包含 8/16/18/24/32 bit,但具体格式与输出接口要分别核对。

RM 列出的组合是:不超过两个 LCDIF 同时工作时,每个最高至 1920×1200p60;三路同时工作时,可采用两路 1080p60 加 HDMI 4Kp30。各接口自身还有限制,例如 LVDS 路径的最大模式须以其章节为准,不能把这条总述套到任意屏幕。

MIPI 部分有一路四 lane DSI、两路各四 lane CSI;LVDS 支持四 lane 或八 lane 配置。数据手册进一步区分 CSI1/CSI2、单摄/双摄和 nominal/overdrive 的像素时钟,选择传感器时还需算 lane 速率、位深、消隐和 ISP 处理需求。

HDMI 2.0a 发射端支持最高 3840×2160p30,像素时钟上限 297 MHz,并列出 32 通道音频输出和一路 SPDIF 音频 eARC 输入支持。芯片能力不等于连接的显示器、codec、驱动与内容格式均支持相同通道数;也不能把普通 SPDIF 收发模块直接当成完整 eARC 协议实现。

音频部分包括最高 800 MHz 的 HiFi4 DSP、SPDIF、六组外部 SAI、最多八路 PDM 麦克风输入、ASRC 和 eARC/ARC 相关功能。六组 SAI 的 lane 数并不相同:分别有一组 8 TX/8 RX、一组 4 TX/4 RX、两组 2 TX/2 RX、两组 1 TX/1 RX。

SAI 覆盖 I²S、AC97、TDM、codec/DSP、DSD 等接口方式;数据手册列出 49.152 MHz BCLK 支持。ASRC 可处理最多 32 个音频通道、四组 context、8~384 kHz 采样率以及 1/16~8 倍转换比例。具体组合还需核对通道数、slot 位宽、时钟源、DMA 脚本与软件支持。

将低延迟处理放到 DSP/M7、缓冲放到 OCRAM_A,可以减轻特定 DDR 路径的压力;是否合适要看可用空间、电源域状态和实测时延,不能保证“完全不争用”。

8. 连接接口与板级条件

跳转到“8. 连接接口与板级条件”
接口SoC 资源板级及软件条件
PCIeGen3 ×1,可作 RC 或 EP,集成 PHY、支持 L1 子状态8 GT/s 经 128b/130b 编码后约 985 MB/s,再扣除协议开销;不是实测 1 GB/s
USB两路 USB 3.0 控制器,兼容 USB 2.0、集成 PHYType-C 的 CC/PD、电源、角色切换和高速布线需要板级实现,不能直接接母座就获得任意 PD 电压
uSDHC三组,SD/SDIO 与 eMMC 能力依实例而定eMMC 5.1/HS400 看 uSDHC1、3;引脚、电压、器件和模式决定可用速率
Ethernet两路千兆 MAC,可同时工作,其中一路支持 TSN;包含 EEE、AVB、IEEE1588 能力仍需合适 PHY、磁性器件/接口与驱动;具体 TSN 子标准逐项确认
FlexCAN两组,支持 CAN-FD仍需 CAN 收发器;线速、采样点和滤波资源不能仅由 CAN-FD 名称推导
UART、I²C、eCSPI分别 4、6、3 组逐实例核对模式、时钟和复用;eCSPI 不是 FlexSPI,不能套用八线/四线 DDR flash 能力

常见组合包括工业网关的 Ethernet/CAN、边缘设备的 PCIe 存储或扩展卡、USB 模组、SDIO 无线和低速传感器接口。能否同时使用,还受 pinmux、供电、时钟和驱动资源限制;框图不能替代原理图与 BSP 支持清单。

模块职责需要明确的边界
RDC主控域、外设与内存访问策略,支持四域及最多八个 DDR 区域不是“每域八区”;域分配不等于策略已正确锁定
TrustZone、OCRAM 保护区分安全/非安全访问,为 TEE 与受保护存储提供基础安全世界、外设配置和软件边界需要完整设计
HAB启动镜像认证机制实际认证链由镜像格式、签名、熔丝与启动状态决定,不是所有出厂板都已关闭未签名启动
CAAM密码运算、RSA/ECC 公钥运算、RNG、制造保护等算法能力不等于某项 DRM 或产品认证已具备
RTIC内存完整性检查能力检查范围、参考值、触发和故障响应需要配置
SNVS安全状态及安全 RTC 等功能保持与篡改响应依赖具体寄存器、供电和板级连接
SJC控制调试访问策略不能假定 JTAG 默认锁死,也不能随意套用固定“256 bit 解锁密钥”

数据手册说明可支持 Widevine、PlayReady 等内容保护,但还需要相应软件、密钥配置、授权和认证。原文列出的算法位数、抗攻击效果、认证级别、密钥永久不可读等绝对结论,不能仅靠模块框图成立。实际设计应查看对应安全文档与器件配置,不把概述当作烧写熔丝的操作指南。

10. 多核通信、GPIO 与调试

跳转到“10. 多核通信、GPIO 与调试”

RDC 处理访问策略,MU 传送短消息或事件,SEMA4 提供硬件互斥,共享内存承载较大的数据。普通 MU 每侧具有四个 32 bit 发送寄存器与四个接收寄存器;数据握手和中断要按协议配置,不承诺固定 1~2 μs 到达。

这里的通用 SEMA4 是双处理器、16 个 gate 的配置。加锁需要写入本处理器对应值,再读回确认取得锁;读取到“当前空闲”不是已经加锁。持有者释放、缓存维护和内存屏障各自解决不同问题。RDC 所用信号量与这个通用 SEMA4 的数量和职责也不能混用。

GPIO 模块提供方向、数据和中断功能;IOMUXC 选择 pad 的复用、输入 daisy 及电气属性。ALT 编号由具体 pad 决定:不能统一规定 ALT0 总是 GPIO、ALT1 总是 UART。开漏、上下拉、驱动强度等也要看 pad 控制寄存器和电压域,软件复用不能弥补板上接线冲突。

CoreSight 提供调试与跟踪基础,4 KiB ETF 用于缓冲 trace,CTI 支持跨模块触发,JTAG 提供调试接口。跟踪源、通路、sink、触发和读取都需配置;“有 ETF”不等于开机后自动保存所有核的完整执行历史,CTI 也不会默认让所有核同步暂停。

RM 说明芯片首先从 A53 启动,M7 保持复位,直到 A53 侧加载固件并释放。NAND、SD/MMC、eMMC、SPI/FlexSPI 和 USB serial downloader 属于启动路径选择;M7 镜像如何被加载和认证,需要看具体 U-Boot/系统启动方案及安全状态。不能据此宣称任意 bootaux 或 remoteproc 加载都自动完成签名验证。

芯片采用 little-endian 模式。它规定多字节数值在内存中的字节顺序,不意味着网络数据或文件只能采用小端;协议约定为大端时应使用显式序列化/字节序转换,而不是对所有缓冲区一律翻转。