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.
您好!
我们正在定制电路板上使用 XAM6546ACDXEAF、并尝试在我们正在使用的 DD4 SDRAM 上启用 CA 奇偶校验。 我们使用德州仪器的 AM65x_DRA80xM_EMIF_Tool_2.03.xlsm 来配置 SDRAM。 我们在没有启用 CA 奇偶校验的情况下进行了测试、测试结果正常。
为了启用 CA 奇偶校验、我们在 Step2-DDR 计时(AM65x_DRA80xM_EMIF_Tool_2.03.xlsm)中将奇偶校验延迟从0更改为4 TCK (速度二进制1600MT/s)。 该变化会导致 DRPHY_MR5_DDR4寄存器发生变化(CAPM=1)、并且某些时间寄存器会增加2个 TCK (奇偶校验延迟/2)。 我们还在 DDRCTL_CRCPARCTL1寄存器中手动设置了 page_enable 位。
在启用 CA 奇偶校验的情况下初始化配置不会出现错误、但从内存进行写回读会产生垃圾。 我们已从 AM65x_DRA80xM_EMIF_Tool_2.03.xlsm 中导出和测试了 GEL 和 RTOS 文件、结果相同。
启用 CA 奇偶校验时、我们是否需要进行任何其他更改?
此致
约翰尼·莫斯特劳姆
你好、Johnny、很抱歉回复延迟了。
有几个 TMG 寄存器会在启用 CA 奇偶校验时更改。 您能否通过工具提供支持/不支持奇偶校验的配置文件、以便我进行比较。 只是想确保附加 PL 的所有参数都是正确的
另外,您尝试过在禁用 CA 奇偶校验的情况下进行初始化,然后在训练后启用它。 可能是传播了一些意外错误。
此致、
詹姆斯
您好、James、感谢您的答复。
附件是启用/不启用奇偶校验的配置文件。
我们还尝试在训练后激活奇偶校验,它看起来很像如果我们在训练之前做它(写和读回内存只是给我们垃圾)。
在进行初始化时、我们使用来自 TI RTOS PDK (8.0.0.36)的 Board_DDRInit。
此致 Johnny
启用奇偶校验:
/* DDR Mode Register 5 */ HW_WR_DDRPHY_REG32(CSL_EMIF_PHYCFG_MR5_DDR4, DDRPHY_MR5 | 0x00000001); /* DDR Mode Register 5. Enable parity (C/A Parity Latency=1=4). */ HW_WR_REG32((CSL_DDRSS0_CTL_CFG_BASE + CSL_EMIF_CTLCFG_MRCTRL1), DDRPHY_MR5 | 0x00000001); /* Write DDR Mode Register 5. */ regValue = HW_RD_REG32(CSL_DDRSS0_CTL_CFG_BASE + CSL_EMIF_CTLCFG_MRCTRL0); regValue |= 0x80005000; HW_WR_REG32((CSL_DDRSS0_CTL_CFG_BASE + CSL_EMIF_CTLCFG_MRCTRL0), regValue);
e2e.ti.com/.../board_5F00_ddr_5F00_config_5F00_no_5F00_parity.h
您好、Johnny、
仍然不太确定它为什么不起作用。 我在文档中发现以下内容、即您还必须更新 INIT6.MR5寄存器、使其与 SDRAM 寄存器对齐:
如果软件更新了 SDRAM MR 寄存器的任何部分、软件也有责任
更新相应的 init*.*mr*,使其与 SDRAM 的 MR 寄存器对齐。 对于 DDR4,init*
寄存器用于控制一些运行时功能(例如 CA 奇偶校验)、以及用于自动模式
寄存器访问。
看到它、这会产生影响。
此致、
詹姆斯
您好、James:
训练后无法更新 INIT6.MR5寄存器(静态寄存器?)。 我们在 INIT6.MR5寄存器中测试了在初始化时禁用 C/A 奇偶校验延迟(0x480)并且 C/A 奇偶校验延迟= 4 (0x481)、结果相同(写入和读取存储器只是给我们带来了垃圾)。
此致 Johnny
Johnny、INIT6是一种准动态寄存器、需要 SWCTL.SW_DONE=0才能进行写入。 这可能是写入无法正常工作的原因。 然后、将 SWCTL.SW_DONE 设置回1以完成写入。
此致、
詹姆斯
谢谢 James、我设法在初始化后设置 INIT6.MR5、但结果是相同的(从内存读回只给我们垃圾)。
此致 Johnny
感谢 Johnny、仍然不清楚为什么你有这个问题。 让我提出一些探索性的问题,其中一些可能是基本的,但只是为了完整:
-在启用 CA 奇偶校验之前,您可以尝试清除 MR5中的 CA 奇偶校验错误状态。 这是为了确保在启用前不会出现寄存器错误、
-你可以探测 PAR 信号,看看它是否至少是在切换? 如果您采用 VTT 终端、PAR VTT 是否已终止?
您看到了错误吗? 通过读取 MR5[4]或探测 ALERT_n?
- DRAM 上是否有任何未使用的地址信号?
-您是否在 MR5[9]中启用了持久模式? 我的理解是、如果禁用此功能、您只会收到一个错误、DRAM 将继续正常运行(不检查 CA 奇偶校验)
-根据您的寄存器转储, crc_quite_retry_enable=0,因此我的预期是,如果收到错误,控制器不会尝试重试发送命令。 我认为这目前是正确的设置、至少在我们对其进行调试之前
-要尝试缩小读取或写入问题的范围,可以尝试在启用奇偶校验的情况下写入一个存储器的小块,关闭奇偶校验,然后尝试读取该块。 类似地、在禁用 CA 奇偶校验的情况下写入块、然后在启用 CA 奇偶校验的情况下尝试读取。
根据上面的某些结果、启用 CA 奇偶校验时、延迟调整可能会出现问题。
此致、
詹姆斯
大家好、James
我们在启用 CA 奇偶校验之前清除 MR5中的 CA 奇偶校验错误状态。
我们已经检查了 PAR 信号、它正在进行切换。 PAR 是 VTT 端接(端接电阻39.2欧姆)
通过读取 MR5[4]或检查 ALERT_n,我们无法看到任何错误。
DRAM 上的所有地址信号均已连接。
我们已经在 MR5[9]中启用和禁用了持久模式的测试。
测试
奇偶校验被禁用:
MEM 写地址:0x80000100值:0x87654321
MEM 读地址:0x80000100值:0x87654321
奇偶校验被启用:
MEM 读地址:0x80000100值:0xffffff00
MEM 写地址:0x80000100值:0x12345678
MEM 读地址:0x80000100值:0xffffff00
奇偶校验被禁用:
MEM 读地址:0x80000100值:0x87654321
此致
约翰尼
Johnny、既然你没有遇到任何奇偶校验错误、似乎延迟时间存在问题、我想我知道问题在哪里。 数据手册提到以下内容:
对于 DDR4:RL = CL+AL + PL;WL = CWL + AL + PL
但我注意到、计时寄存器中使用 RL 或 WL 的位置、电子表格并没有考虑+PL。 例如、DRAMTMG2定义 WL、但电子表格不会添加+PL (根据您发送的文件的差异)。
我进行了快速搜索、WL 和 RL 在 DRAMTMG0/1/2中的公式中使用。 将需要确保这些参数中的每一个增加2 (PL=4、但由于1:2频率比模式、对于该位字段的公式中使用的 RL 或 WL、该参数值只需要为+2)。
此致、
詹姆斯
我尝试更新这些寄存器、但仍然无法正常工作。
我还尝试在 AM65x 工业开发套件(TMDX654IDKEVM)上启用 CA 奇偶校验、但结果相同。 CA 奇偶校验是否适用于开发套件? 如果可以、是否可以进行配置?
此致
约翰尼
Johnny、您可以将完整的配置文件与您的最终编辑进行发送、以便与之前发送的其他文件进行比较
我的期望是这个也应该同样适用于 IDK、但据我所知、我们从未在该板上启用过这个功能
谢谢。
詹姆斯
您好、James:
附件是 我的最新配置文件。
此致
约翰尼
Johnny、谢谢。
只是一个警告,我将离开办公室的未来2周,不会有机会看这个,直到我回来。 请告诉我这是否可以接受。
到目前为止我的印象是、这不是一个错误、我只需要处理适当的延迟时序或其他一些配置问题。 我不知道与此相关的任何错误或勘误表。
您的产品是否要求实现 CA 奇偶校验? 至少在接下来的几周内、如果没有它、您能取得进展吗?
此致、
詹姆斯
您好、James:
CA 奇偶性是我们安全产品的一项要求。 如果我们等待几个星期,这个项目不会停止,但我们希望尽快解决这个问题。
此致
约翰尼
Johnny、您好!
James 将外出工作几周、我们需要他的帮助才能在这个问题上取得进展。
感谢您的耐心和理解。
此致、
卢卡斯