2. AM62x硬件架构
AM62x 是 TI Sitara 系列中面向工业 HMI、边缘网关、车载仪表与低成本视觉终端的异构多核处理器。理解其硬件架构,是后续 BSP 移植、设备树编写、驱动调试与低功耗设计的基础。本节从核心组成、内存映射、外设子系统、电源与时钟管理四个维度展开,帮助建立“从芯片到板级”的整体认知。
一、异构双域核心:Cortex-A53 与 Cortex-M4F
AM62x 内部并非单一 CPU,而是由两个功能定位不同的处理域构成:主域(Main Domain)与 MCU 域(MCU Domain)。主域集成 1~4 个 ARM Cortex-A53 核心,运行 Linux/RTOS 等富操作系统;MCU 域集成 1 个 ARM Cortex-M4F 核心,带 FPU,通常运行 TI-RTOS、FreeRTOS 或裸机固件,承担实时控制、安全监控与低功耗唤醒任务。
- Cortex-A53:64 位 ARMv8-A 架构,支持 AArch64/AArch32,具备 MMU、NEON、L1/L2 Cache,主频典型 1.4GHz,负责应用层、网络协议栈、图形与文件系统。
- Cortex-M4F:32 位 ARMv7-M 架构,带单精度 FPU 与 NVIC,主频典型 400MHz,负责电机控制、传感器采集、看门狗、电源状态机与 A53 的启动/复位管理。
- 域间通信:通过 IPC(Inter-Processor Communication)与共享内存交互,Linux 侧常用 RPMsg/remoteproc 框架,MCU 侧使用 IPC Notify 或 Mailbox 中断。
.out 或 .bin,再由 A53 侧 remoteproc 加载。二、内存映射:从地址空间看芯片资源
AM62x 采用统一物理地址映射,A53 与 M4F 看到的外设基址基本一致,但访问权限与缓存属性不同。理解内存映射,能快速定位寄存器、DDR、共享内存与外设的位置。
| 地址区间 | 区域名称 | 典型用途 |
|---|---|---|
| 0x0000_0000 – 0x0007_FFFF | MCU域 SRAM / ROM | M4F 启动、中断向量、IPC 共享 |
| 0x0280_0000 – 0x02FF_FFFF | 主域 SRAM | A53 早期启动、ATF、OP-TEE |
| 0x8000_0000 – 0xFFFF_FFFF | DDR4/LPDDR4 | Linux 内核、根文件系统、应用 |
| 0x0010_0000 – 0x001F_FFFF | 外设寄存器区 | UART、I2C、SPI、GPIO、eMMC |
| 0x0B00_0000 – 0x0BFF_FFFF | IPC 共享内存 | A53 与 M4F 数据交换 |
在设备树中,外设节点通过 reg = <0x00100000 0x1000>; 描述基址与长度,内核据此建立 ioremap 映射。若地址写错,驱动会读取到错误寄存器,表现为“设备无响应”或“超时”。
三、外设子系统:按功能域划分
AM62x 的外设可归为连接、存储、显示、控制与安全五类。BSP 开发中最常接触的是连接类与存储类。
- 连接类:UART(调试串口)、I2C(PMIC、EEPROM)、SPI(Flash、ADC)、CAN-FD(工业总线)、USB、以太网 CPSW3G。
- 存储类:eMMC/SD、OSPI/QSPI Flash、DDR 控制器。
- 显示类:Display Subsystem(DSS)、DPI/OLDI 输出、GPU(部分型号)。
- 控制类:EPWM、ECAP、ADC、GPIO、Timer。
- 安全类:DMSC(Device Management and Security Controller)、SA2UL 加密加速、Firewall。
其中 DMSC 是 AM62x 的关键模块,负责电源、时钟、复位与安全启动。A53 不能直接配置部分外设,必须通过 SYSFW(System Firmware)与 DMSC 通信,这也是 TI K3 架构的典型特征。
四、电源与时钟管理
AM62x 的电源管理由 PMIC(如 TPS65219)与 DMSC 协同完成。主要电源域包括:主域、MCU 域、DDR 域、唤醒域。时钟树则由主 PLL、外设 PLL 与分频器构成,常见时钟源为 25MHz 晶振。
# 查看 Linux 侧时钟树
cat /sys/kernel/debug/clk/clk_summary
# 查看电源域状态
cat /sys/kernel/debug/pm_genpd/pm_genpd_summary
# 设备树中配置 UART 时钟
&uart0 {
status = "okay";
clocks = <&k3_uart0_clk>;
clock-names = "fclk";
};
低功耗场景下,A53 可进入 CPU Idle 或 Suspend,M4F 可保持运行以响应唤醒事件。BSP 需正确配置 wakeup-source 与 PMIC 中断,否则系统无法从低功耗状态恢复。
五、案例:从串口日志判断架构问题
假设板卡启动时 UART0 无输出。排查顺序应为:先确认 MCU 域是否释放 A53 复位,再检查 DDR 是否初始化成功,最后确认 UART 时钟与引脚复用。若 U-Boot SPL 阶段有输出而内核阶段中断,则问题多在内核设备树或时钟配置,而非硬件架构。
综上,AM62x 的 BSP 开发必须同时理解 A53 与 M4F 的分工、物理地址布局、外设归属以及 DMSC 对电源时钟的集中管控。只有把“核、址、外设、电钟”四条线串起来,才能在设备树、驱动与低功耗调试中快速定位问题。