Skip to content

ZX296716 硬件映射与主线 Linux 内核可行性评估

🕒 Published at:

ZX296716 硬件映射与主线 Linux 内核可行性评估 ​

基于 DTB 反编译与内核二进制分析 | 2026-07-30

1. SoC 概述 ​

项目规格
SoCZXIC ZX296716 (ZTE 自研)
CPUARM Cortex-A53 四核 (ARMv8-A, AArch64)
GPUARM Mali-400 MP2
内存1GB DDR3 (物理寻址 0x40000000-0x50000000)
存储4GB eMMC + SDIO 卡槽
网络GMAC (Synopsys DWC QoS Ethernet 4.20)
USB2x DWC2 OTG (0x05180000, 0x051c0000)
视频解码G1V6 (H.264), G2V3 (H.265), H1V6 (H.264 编码)
音频I2S x4, SPDIF x2, HDMI Audio, TSMC
视频输出VOU, HDMI, TVENC (CVBS), YPbPr, LVDS, RGB LCD
中断控制器ARM GICv3
当前内核4.1.18 (ZTE 定制 aarch64)
用户空间Android 4.4.2 (32-bit armhf)

2. 完整外设寄存器映射 ​

2.1 CPU 与系统控制 ​

基地址大小设备Compatible说明
0x02a000000x10000GICv3 Distributorarm,gic-v3中断分发器
0x02a800000x20000GICv3 Redistributor(同上)CPU 重分发器
0x02aa00000x20000GICv3 CPU IF(同上)CPU 接口
0x02ac00000x20000GICv3 HYPRE(同上)虚拟化扩展
0x02ae00000x20000GICv3 ITS(同上)中断翻译服务
0x001170000x1000PCUzte,zx296716-pcu电源控制单元
0x001160a00x10system-rsv-regszte,zx-sysctrl系统保留寄存器
0x001160b00x04aon-sys-ctrlzte,zx-sysctrlAON 系统控制
0x001220000x04aon-int-clrzte,zx-sysctrlAON 中断清除

2.2 存储控制器 ​

基地址大小设备Compatible说明
0x051000000x1000mmc@0x05100000zxic,dw-mshc-6716eMMC (8-bit, HS200)
0x051080000x1000mmc@0x05108000zxic,dw-mshc-6716SDIO (4-bit, UHS)
0x051090000x1000mmc@0x05109000zxic,dw-mshc-6716SD 卡 (4-bit, UHS)
0x11a0000x1000efusezte,efuseeFuse 读取

2.3 USB 控制器 ​

基地址大小设备Compatible说明
0x051800000x40000usb@0x05180000zxic,dwc2USB OTG 0
0x051c00000x40000usb@0x051c0000zxic,dwc2USB OTG 1

2.4 网络 ​

基地址大小设备Compatible说明
0x052000000x2000ethernet2@0x5200000snps,dwc-qos-ethernet-4.20GMAC (stmmac)

2.5 GPU ​

基地址大小设备Compatible说明
0x052500000x10000gpu@5250000arm,mali-400, arm,mali-utgardMali-400 MP2

2.6 视频处理 ​

基地址大小设备Compatible说明
0x053200000x20000vou@0x05320000zte,zx296716-vou视频输出单元
0x05320a000x1000tvenc@0x05320a00zte,zx296716-tvencCVBS 编码器
0x05320b000x100rgblcd@0x05320b00zte,zx296716-rgblcdRGB LCD (disabled)
0x05320d000x100ypbpr@0x05320d00zte,zx296716-ypbprYPbPr (disabled)
0x053210000x4000hdmi@0x05321000zte,zx296716-hdmiHDMI 控制器
0x053400000x1000g2v3@05340000zte,zx296716-hdeH.265 解码器
0x05340f000x1000hvdecrm@0x05340f00zte,zx296716-hvdecrm视频解码时钟/复位
0x053410000x800g1v6@05341000zte,zx296716-vdeH.264 解码器
0x053420000x1000sappu@0x05342000zte,zx296716-sappuSPU 协处理器
0x053430000x1000h1v6@05343000zte,zx296716-hx280encH.264 编码器

2.7 音频 ​

基地址大小设备Compatible说明
0x052600000x1000audiocrmzte,zx-audiocrm音频时钟控制
0x052620000x1000i2s@0x05262000zte,zx-i2sI2S 0 (okay)
0x052630000x1000i2s@0x05263000zte,zx-i2sI2S 1 (disabled)
0x052640000x1000i2s@0x05264000zte,zx-i2sI2S 2 (disabled)
0x052650000x1000i2s@0x05265000zte,zx-i2sI2S 3 (disabled)
0x052680000x1000spdif@0x05268000zte,zx-spdifSPDIF 0
0x052690000x1000spdif@0x05269000zte,zx-spdifSPDIF 1
0x0526a0000x10tempsensorzte,zx-thermal-6716温度传感器

2.8 低速外设 ​

基地址大小设备Compatible说明
0x001110000x1000irdeczte,zx296716-irdec红外解码
0x001120000x1000audio_i2c0zte,zx-i2c音频 I2C (disabled)
0x001150000x1000rtczte,zx296718-rtcRTC
0x0011f0000x1000uart@11f000zte,zx296718-uartUART (串口控制台)
0x0521E0000x1000i2c3zte,zx-i2cI2C 3 (音频 DAC/HDMI PHY)
0x053050000x1000watchdogzte,zx296718-wdt看门狗
0x053000000x1000dma-controllerzte,zx-dmaDMA 控制器
0x052380000x1000pwmzte,pwmPWM

2.9 GPIO / Pinctrl ​

基地址大小设备说明
0x001100000x40gpio@00110000GPIO 7
0x001100400x40gpio@00110040GPIO 8
0x0521d0000x40gpio@0521d000GPIO 0
0x0521d0400x40gpio@0521d040GPIO 1
0x0521d0800x40gpio@0521d080GPIO 2
0x0521d0c00x40gpio@0521d0c0GPIO 3
0x0521d1000x40gpio@0521d100GPIO 4
0x0521d1400x40gpio@0521d140GPIO 5
0x0521d1800x40gpio@0521d180GPIO 6
0x053020000x40pinctrl@05302000Pinctrl 0-15 (16 个 4KB 寄存器)
0x053031080x04sys_cfg_vouVOU 系统控制
0x053031700x08sys_cfg_dacDAC 系统控制
0x053031940x04pinctrl@05303194TSMC 配置

2.10 时钟控制器 ​

基地址大小设备Compatible说明
0x053010000x1000topcrmzte,zx296716-topcrm主时钟控制器
0x053010600x08reset@5301060zte,zx296718-reset主复位控制器
0x052600000x1000audiocrmzte,zx-audiocrm音频时钟控制器
0x05340f000x1000hvdecrmzte,zx296716-hvdecrm视频解码时钟控制器

3. 中断映射 ​

所有设备通过 GICv3 (phandle 0x07) 连接。

设备IRQ 类型IRQ 号
mmc@0x05108000SPI0
mmc@0x05100000SPI5
ethernet2@0x5200000SPI6
i2c audio_i2c0SPI35
tempsensorSPI35
gpio@0521d000SPI36
irdecSPI64
vouSPI31, 32
hdmiSPI33
rgblcdSPI35
g1v6 (H.264 dec)SPI17
g2v3 (H.265 dec)SPI17
h1v6 (H.264 enc)SPI16
sappuSPI30
watchdogSPI90
mailboxSPI110

4. 时钟系统详解 ​

4.1 topcrm (0x05301000) — 主时钟控制器 ​

topcrm 是 ZX296716 的根时钟控制器,负责 PLL、分频器和时钟门控。

Clock ID十进制设备信号名功能说明
0x0c12cpufreqa53_wclkCortex-A53 工作时钟
0x0f15mmc@0x05109000ciuSD 卡接口时钟
0x1016mmc@0x05109000biuSD 卡总线时钟
0x1117mmc@0x05108000ciuSDIO 接口时钟
0x1218mmc@0x05108000biuSDIO 总线时钟
0x1319mmc@0x05100000ciueMMC 接口时钟
0x1622mmc@0x05100000biueMMC 总线时钟
0x2840watchdog@0x05305000wdtclk看门狗时钟
0x2a42g1v6@05341000g1v6_aclkH.264 解码器 AHB 时钟
0x2c44g1v6, g2v3g1v6_pclk / g2v3_pclk视频解码 APB 时钟
0x2d45h1v6@05343000h1v6_aclkH.264 编码器 AHB 时钟
0x2e46h1v6@05343000h1v6_pclkH.264 编码器 APB 时钟
0x2f47gpu@5250000clk_maliMali GPU 时钟
0x3250sappu@0x05342000sappu_wclkSPU 工作时钟
0x3351sappu@0x05342000sappu_pclkSPU APB 时钟
0x3452vou@0x05320000vou_aclkVOU AHB 时钟
0x3654vou@0x05320000vou_chn_wclkVOU 通道工作时钟
0x4165usb@0x05180000otgUSB0 OTG 时钟
0x4266usb-phy0phyclkUSB0 PHY 时钟
0x4367usb@0x051c0000otgUSB1 OTG 时钟
0x4468usb-phy1phyclkUSB1 PHY 时钟
0x4569ethernet2@0x5200000gmac_rmii_clkGMAC RMII 时钟
0x4670ethernet2@0x5200000gmac_pclkGMAC APB 时钟
0x4771ethernet2@0x5200000gmac_aclkGMAC AHB 时钟
0x4872ethernet2@0x5200000gmac_refclkGMAC 参考时钟
0x4973tempsensor@0x0526A000tempsensor_gate温度传感器门控时钟

4.2 hvdecrm (0x05340f00) — 视频解码时钟控制器 ​

通过 phandle 0x2f 引用,提供视频解码模块的时钟和复位。

Clock ID设备功能
0x04sappuSPU 电源域

4.3 lsp_clk — 低速外设时钟 ​

通过 phandle 0x33 引用,提供 UART、I2C、DMA 等低速外设时钟。

设备信号
uart@11f000uartclk
audio_i2c0@0x00112000scl
dma-controller@0x05300000dmaclk
lsp0_i2c3@0x0521E000clk0

4.4 audio_bus (0x05260000) — 音频域时钟 ​

通过 phandle 0x3b 引用,NIC400 总线上的音频子系统时钟。

Clock ID设备信号
0x01i2s@0x05262000i2s_wclk
0x02i2s@0x05262000i2s_pclk
0x03i2s@0x05263000i2s_wclk
0x04i2s@0x05263000i2s_pclk
0x05i2s@0x05264000i2s_wclk
0x06i2s@0x05264000i2s_pclk
0x07i2s@0x05265000i2s_wclk
0x08i2s@0x05265000i2s_pclk
0x0bspdif@0x05268000spdif_wclk
0x0cspdif@0x05268000spdif_pclk
0x0dspdif@0x05269000spdif_wclk
0x0espdif@0x05269000spdif_pclk
0x13tempsensortempsensor_pclk
0x14tempsensortempsensor_wclk

4.5 nic400_bus — 媒体子系统总线时钟 ​

通过 phandle 0x60 引用。

Clock ID设备信号
0x01g2v3@05340000g2v3_aclk
0x02g1v6, g2v3nic400_mclk

5. 复位系统 ​

复位控制器基地址复位 ID设备信号
topcrm (0x2f)0x053010604mmc@0x05100000eMMC reset
topcrm (0x2f)0x0530106026vou@0x05320000vou_rst
hvdecrm0x05340f00——视频解码复位

6. 主线内核可行性评估 ​

6.1 已有主线驱动的 IP 核 ✅ ​

IP 核设备主线驱动状态备注
ARM GICv3中断控制器irq-gic-v3✅ 完全支持标准实现
DesignWare MMCeMMC/SD/SDIOdw-mmc✅ 基本可用需要 DT 调整
DesignWare DWC2USB OTGdwc2✅ 完全支持标准实现
Synopsys stmmacGMACstmmac✅ 完全支持DWC QoS Ethernet
ARM Mali-400GPUlima (DRM)✅ 可用需要 mesa-lima
DesignWare I2CI2C 控制器i2c-designware✅ 可用标准 DW I2C
ARM Generic Timer系统定时器arm_arch_timer✅ 完全支持标准实现
thermal温度传感器zx-thermal⚠️ 部分可能需要适配
PWMPWM 控制器zx-pwm⚠️ 部分可能需要适配

6.2 需要新写驱动的 ZTE 私有模块 ❌ ​

模块优先级难度工作量估算说明
时钟控制器 (topcrm)🔴 必需高2-3 周核心依赖,所有外设需要
复位控制器🔴 必需低2-3 天通常与时钟驱动合并
UART (串口)🔴 必需中1-2 周控制台输出,12 字节寄存器步长
GPIO🟡 重要中1 周9 组 GPIO 控制器
Pinctrl🟡 重要中1 周pinctrl-single 兼容
Sysctrl🟡 重要中3-5 天多功能系统控制寄存器
RTC🟢 可选低2-3 天zx296718-rtc
Watchdog🟢 可选低1-2 天zx296718-wdt
IR Decoder⚪ 不需要——遥控器,无头服务器不需要
Video (VOU/HDMI)⚪ 不需要——无头服务器不需要
Video Decode⚪ 不需要——无头服务器不需要
Audio⚪ 不需要——无头服务器不需要

6.3 工作量估算 ​

最小可启动系统(串口 + 网络 + 存储):约 4-6 周

阶段任务工作量
Phase 1topcrm 时钟驱动(含复位)2-3 周
Phase 2UART 驱动1-2 周
Phase 3GPIO + Pinctrl1 周
Phase 4集成测试 + DT 绑定1-2 周

完整系统(含 GPU/视频):额外 2-3 个月

6.4 关键技术挑战 ​

  1. topcrm 时钟驱动:最大挑战。需要逆向寄存器布局(PLL 配置、分频器、门控位域)。DTB 只给出了时钟 ID 到设备的映射,但寄存器偏移和位域需要从内核二进制或 ZTE BSP 源码中推断。

  2. UART 驱动:已确认寄存器步长为 12 字节(非标准 16 字节),需要特殊处理。

  3. 缺少文档:ZX296716 没有公开的 TRM(技术参考手册),所有寄存器信息需要从 DTB 和内核二进制中逆向。

  4. 内存映射:1GB DDR 从 0x40000000 开始,内核需正确配置 MMU 和内存控制器初始化。

6.5 推荐方案 ​

方案 A:主线移植(推荐)

  • 优先编写 topcrm 时钟驱动(核心依赖)
  • 移植 UART/GPIO 驱动
  • 使用 DesignWare 现有驱动
  • 预计 4-6 周达到基本可用

方案 B:使用 ZTE BSP 内核

  • 基于现有 4.1.18 内核优化
  • 更快(1-2 周),但技术债务高
  • 不适合长期维护

方案 C:等待社区支持

  • 检查是否有其他 ZX2967xx 设备在 mainline 中
  • 社区可能已有部分驱动(如 zte,pwm)
  • 时间不确定

建议:选择方案 A,优先编写 topcrm 时钟驱动。这是所有其他驱动的基础。一旦时钟驱动工作,后续驱动可以并行开发。

7. 附录:DTB 中的关键 Phandle 映射 ​

Phandle设备类型
0x07interrupt-controller@2a00000GICv3
0x1b-0x2dpinctrl@00119000 等Pinctrl 控制器
0x2eclock-controller@05301000topcrm
0x2freset@5301060复位控制器
0x33lsp_clk低速外设时钟
0x35gpio@0521d0c0GPIO 3
0x3bclock-controller@0x05260000音频时钟控制器
0x54gpio@0521d100GPIO 4
0x60clock-controller@05340f00hvdecrm
0x61gpio@0521d080GPIO 2
0x62gpio@00110040GPIO 8
0x63gpio@00110000GPIO 7

本文档基于 DTB 反编译和内核二进制分析生成。寄存器布局为推测值,需要实际硬件验证。