This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VH-Q1:J784S4 LPDDR4 DDRSS0/1/3 在 DDR 初始化期间不会生成 FSP_REQ、而 DDRSS2 通过了测试

Guru**** 2964790 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1657182/tda4vh-q1-j784s4-lpddr4-ddrss0-1-3-do-not-generate-fsp_req-during-ddr-initialization-while-ddrss2-passes

器件型号: TDA4VH-Q1
Thread 中讨论的其他器件: TDA4VH

TI 团队大家好、

我们正在使用基于 CCS/GEL 的 DDR 初始化在定制 J784S4/TDA4VH 板上调试 LPDDR4 初始化。

我们将使用相同的调试流程将该行为与 J784S4 EVM 进行比较。 在 EVM 上、所有 DDR 实例都成功完成 FSP 握手和 DDR 初始化。 但是、在我们的定制电路板上、只有 DDRSS2 成功完成。 DDRSS0、DDRSS1 和 DDRSS3 在同一点都失败:从不生成 FSP_REQ 信号。

测试环境

  • 器件:J784S4/TDA4VH
  • DDR 类型:LPDDR4
  • DDR 实例:DDRSS0、DDRSS1、DDRSS2、DDRSS3
  • 待测 DDR 速率:LPDDR4-21132/DDR 533MHz 设置
  • 调试方法:CCS GEL DDR 初始化
  • 多 DDR 配置:
    • MULTI_DDR_CFG0 = 0x000C0003
    • MULTI_DDR_CFG1 = 0x0000180F
    • DDR_CFG_LOAD = 0x60000001
    • 启用四通道 DDR、128B 粒度

EVM 行为

在 J784S4 EVM 上、所有 DDR 实例都正常生成 FSP_REQ 并完成初始化。

对于每个 DDRSS 实例、我们观察预期的序列:

  • PI_0 起始位被锁存
  • CTL_0 起始位被锁存
  • 生成 FSP_REQ
  • GEL 检测到 FSP_REQ 并更新 DDR PLL
  • GEL 写入 FSP_ACK
  • 清除 FSP_REQ
  • 对于所有预期的 FSP 请求、这会重复进行
  • Ack_Freq_Upd_Req 通过 PASS 退出
  • PI_79 达到完成
  • CTL_293 达到 0x200
  • 单个 DDRSS 测试以 PASS 结束

EVM 行为示例:

DDRSS0:
FSP_REQ = 0x00000081
ALL_REQ = 0x00000081/0x00000000/0x00000000/0x00000000
Ack_Freq_Upd_Req EXIT PASS
PI_79 DONE
CTL_293 = 0x00000200
SINGLE TEST END = PASS

DDRSS1:
FSP_REQ = 0x00000081
ALL_REQ = 0x00000000/0x00000081/0x00000000/0x00000000
Ack_Freq_Upd_Req EXIT PASS
PI_79 DONE
CTL_293 = 0x00000200
SINGLE TEST END = PASS

DDRSS2:
FSP_REQ = 0x00000081
ALL_REQ = 0x00000000/0x00000000/0x00000081/0x00000000
Ack_Freq_Upd_Req EXIT PASS
PI_79 DONE
CTL_293 = 0x00000200
SINGLE TEST END = PASS

DDRSS3:
FSP_REQ = 0x00000081
ALL_REQ = 0x00000000/0x00000000/0x00000000/0x00000081
Ack_Freq_Upd_Req EXIT PASS
PI_79 DONE
CTL_293 = 0x00000200
SINGLE TEST END = PASS

这样可确认 FSP_REQ/FSP_ACK 地址映射和 GEL 轮询逻辑正确。

定制电路板行为

在定制电路板上、DDRSS2 的行为与 EVM 相同并成功完成。

但是、DDRSS0、DDRSS1 和 DDRSS3 的故障方式都相同。

对于失败的 DDRSS 实例:

PI_0    = 0x00000B01
CTL_0   = 0x10460B01
PHY_1381 = 0x00000001
FSP_REQ = 0x00000000
FSP_ACK = 0x00000000
ALL_REQ = 0x00000000/0x00000000/0x00000000/0x00000000
PI_79   = 0x00000000
CTL_293 = 0x00000000

PI_0 和 CTL_0 起始位被锁存、因此基本的寄存器写入似乎被接受。 但是、失败的 DDRSS 实例永远不会生成 FSP_REQ。

故障点位于 PI_79 进行之前、CTL_293 达到完成之前。

比较摘要

项目 EVM DDRSS0/1/2/3 定制 DDRSS2 定制 DDRSS0/1/3
寄存器编程 好的 好的 好的
PI_0 启动锁存 好的 好的 好的
CTL_0 启动锁存 好的 好的 好的
FSP_REQ 生成 好的 好的 未生成
FSP_ACK 处理 好的 好的 未达到
PI_79 完成 好的 好的 未达到
CTL_293 = 0x200 好的 好的 未达到
最终结果 开来 开来 失败

其他检查已完成

我们检查了定制电路板上的以下各项:

  • 从外部下拉 DDR_RET。
  • EMIF_DATA 的 PSC 状态、EMIF_CFG 显示 STATE = 3 且 NEXT = 3。
  • 在外部电源/复位检查中未发现明显的问题。
  • 在 DDR 复位/ZQ 相关检查中未发现明显的短路或异常电阻。
  • 同一定制板上的 DDRSS2 以相同的 GEL 流程通过。

问题

由于 DDRSS0、DDRSS1 和 DDRSS3 锁存 PI_0/CTL_0 会启动、但始终不会生成 FSP_REQ、而 DDRSS2 通过了所有 DDRSS 实例并且 EVM 都通过了这些指令、我们想了解可能的根本原因。

这是否表明 DDRSS0/1/3 本地 PHY 时钟/复位/隔离域、SoC BGA 连接或 SoC DDR PHY 宏中存在问题?

TI 可否告知应检查哪些内部状态寄存器、以确认是否已正确释放 DDRSS0/1/3 本地时钟、复位或隔离?

具体而言、我们想知道:

  1. 哪些寄存器指示每个 DDRSS 实例的 DDRSS 本地时钟有效状态?
  2. 哪些寄存器指示 DDRSS/PHY 复位释放状态?
  3. 哪些寄存器指示 DDRSS/PHY 隔离释放状态?
  4. 在生成 FSP_REQ 之前、是否有任何应更改的 PHY 状态位?
  5. FSP_REQ 应该只在 PI_0/CTL_0 启动后由内部 DDRSS/PI/PHY 序列发生器生成吗?
  6. 如果 PI_0/CTL_0 正确启动锁存、但从未出现 FSP_REQ、建议的调试步骤是什么?

希望提供有关下一个调试步骤的任何指导。

此致、