ZHDA271 August 2026 AM620-Q1 , AM623 , AM625-Q1 , AM62A1-Q1 , AM62A3-Q1 , AM62A7-Q1 , AM62D-Q1 , AM62L , AM62P-Q1 , DRA821U-Q1 , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4APE-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VP-Q1 , TDA4VPE-Q1
TDA4VE 配置:
TDA4VE 采用两个在交错模式下运行的 DDR 控制器。每个 DDR 控制器都维护一组独立的 ECC 错误日志寄存器。因此,报告 ECC 事件的 DDR 控制器确定哪个通道包含故障位置。
在双 DDR 交错模式下,连续的 128 字节存储器区域会交替映射到 DDR0 和 DDR1。对于 TDA4VE 双 DDR 交错模式,每 16 个 ERR_ADR 条目构成一个重复地址模式。表 2-4 显示与 ERR_ADR mod 16 对应的逻辑偏移和物理偏移,如下所示:
| MOD(ADR,16) | DDR0 逻辑偏移 | DDR1 逻辑偏移 | DDR0 物理偏移 | DDR1 物理偏移 |
|---|---|---|---|---|
| 0 | 0x0 | 0x80 | 0x0 | 0x80 |
| 1 | 0x40 | 0xC0 | 0x40 | 0xC0 |
| 2 | 0x100 | 0x180 | 0x100 | 0x180 |
| 3 | 0x140 | 0x1C0 | 0x140 | 0x1C0 |
| 4 | 0x200 | 0x280 | 0x200 | 0x280 |
| 5 | 0x240 | 0x2C0 | 0x240 | 0x2C0 |
| 6 | 0x300 | 0x380 | 0x300 | 0x380 |
| 7 | 0x340 | 0x3C0 | 0x340 | 0x3C0 |
| 汉明码 | 不可见 | 不可见 | 0x400 | 0x480 |
| 汉明码 | 不可见 | 不可见 | 0x440 | 0x4C0 |
| 8 | 0x400 | 0x480 | 0x500 | 0x580 |
| 9 | 0x440 | 0x4C0 | 0x540 | 0x5C0 |
| 10 | 0x500 | 0x580 | 0x600 | 0x680 |
| 11 | 0x540 | 0x5C0 | 0x640 | 0x6C0 |
| 12 | 0x600 | 0x680 | 0x700 | 0x780 |
| 13 | 0x640 | 0x6C0 | 0x740 | 0x7C0 |
| 14 | 0x700 | 0x780 | 0x800 | 0x880 |
| 15 | 0x740 | 0x7C0 | 0x840 | 0x8C0 |
假设:
DDR0_1B_ERR_ADR = 0x49
DDR0_1B_ERR_MSK = 0x0400
解码系统地址
地址粒度 = 64 字节
系统配置为双 DDR 交错模式,交错粒度为 128 字节。
对于每 16 个 ERR_ADR 条目:
占用的逻辑地址空间:
16 × 128B = 0x800B
占用的物理 DDR 空间:
16 × 128B + ECC 存储
= 0x900B
ECC 块起始偏移为:
floor (0x49 / 16) × 0x800
0x4 × 0x800
= 0x2000
ECC 块段偏移为:
0x49 mod 16 = 9
根据地址映射表,对应 ERR_ADR mod 16 = 9 的 DDR0 逻辑偏移为 0x440。
ERR_MSK 中的位 10 置位为:
误差偏移 = 10 × 8 = 0x50
由于 ERR_ADR 为奇数,故对应的 ECC 块与上一个地址块共用同一个 ERR_MSK 字段。因此:
系统偏移
= 0x440 - 0x40 + 0x50 + 0x2000
= 0x2450
系统地址
= 系统偏移 + 0x80000000
= 0x80002450
物理地址计算:
ECC 块起始偏移为:
floor (0x49 / 16) × 0x900
= 0x4 × 0x900
= 0x2400
ECC 块段偏移为:
0x49 mod 16 = 9
根据地址映射表,对应 ERR_ADR mod 16 = 9 的 DDR0 物理偏移为 0x540。
ERR_MSK 中的位 10 置位为:
误差偏移 = 10 × 8 = 0x50
由于 ERR_ADR 为奇数,故对应的 ECC 块与上一个地址块共用同一个 ERR_MSK 字段。因此:
物理偏移
= 0x540 - 0x40 + 0x50 + 0x2400
= 0x2950
物理地址
= 物理偏移 + 0x80000000
= 0x80002950