UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor yang_hailei
Visitor
250 次查看
注册日期: ‎07-09-2018

关于DDR4 ECC,ECCCADDR1寄存器的理解

查看Zynq UltraScale+ Devices Register Reference英文版时发现在ECC区域有个寄存器很难理解,希望论坛有人指导一下。

 

背景:

       系统使用的是DDR4,需要启用ECC功能。在编程时,需要显示ECC给出的结果。包含出错的Bank,Bank Group,rank, row, column。这些数据存在ECCCADDR0和ECCCADDR1,两个寄存器内。但是在ECCCADDR1中关于column多了一个介绍。“0: data beats 0 to 3.       4: data beats 4 to 7.”   这里的beat是一个burst的beat吗?哪么这里又如何实现表示column的同时又表示beat。这个column只有12位,如果拿出3个位用于表示beat,那么剩下只有9位。一般column需要的是10位。无法满足即表示column又表示beat。

 

 

手册链接:

        https://www.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html

该寄存器页面如下:

image.png

 

 

 

0 项奖励
3 条回复
Xilinx Employee
Xilinx Employee
165 次查看
注册日期: ‎04-15-2011

回复: 关于DDR4 ECC,ECCCADDR1寄存器的理解

你可以参考一下Linux你们EDAC的代码:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842241/EDAC+Driver

https://github.com/Xilinx/linux-xlnx/blob/master/drivers/edac/synopsys_edac.c

我理解Linux打印里,Col是不对的,Block Number就是column address(对应的是你问的寄存器)

root@xilinx-zcu102-2017_3:~# echo "CE" > /sys/devices/system/edac/mc/mc0/inject_data_poison
root@xilinx-zcu102-2017_3:~# echo 0x7EE0EEE0 > /sys/devices/system/edac/mc/mc0/inject_data_error
root@xilinx-zcu102-2017_3:~# devmem 0x7EE0EEE0 32 0x1234
root@xilinx-zcu102-2017_3:~# devmem 0x7EE0EEE0
[ 38.109379] EDAC MC0: 1 CE DDR ECC error type :CE Row 16240 Bank 1 Col 0 BankGroup Number 3 Block Number 748 on mc#0csrow#0channel#0 (csrow:0 channel:0 page:0x0 offset:0x0 grain:1 syndrome:0x0)
0x00001234
root@xilinx-zcu102-2017_3:~# echo "CE" > /sys/devices/system/edac/mc/mc0/inject_data_poison
root@xilinx-zcu102-2017_3:~# echo 0x7EE0[ 909.353767] random: crng init donenject_data_error
DDD
root@xilinx-zcu102-2017_3:~# devmem 0x7EE0DDD0 32 0x1234
root@xilinx-zcu102-2017_3:~# devmem 0x7EE0DDD0
[ 917.861298] EDAC MC0: 1 CE DDR ECC error type :CE Row 16240 Bank 1 Col 0 BankGroup Number 3 Block Number 472 on mc#0csrow#0channel#0 (csrow:0 channel:0 page:0x0 offset:0x0 grain:1 syndrome:0x0)
0x00001234

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Visitor yang_hailei
Visitor
159 次查看
注册日期: ‎07-09-2018

回复: 关于DDR4 ECC,ECCCADDR1寄存器的理解

感谢你的回复

在论坛的另一个帖子有人给我回复了,

    col 地址 = 寄存器col值 + beat值

寄存器中col的值最低两个位不使用,由beat值指示具体数据

 

这里是回复的具体信息

https://forums.xilinx.com/t5/Memory-Interfaces/ECCCADDR1-in-DDRC-Module/m-p/925776#M13681

 

 

不过你给出的验证ECC方法我无法在系统上成功验证。

只是给出 0x00001234

image.png

 

Xilinx Employee
Xilinx Employee
145 次查看
注册日期: ‎04-15-2011

回复: 关于DDR4 ECC,ECCCADDR1寄存器的理解

你可以看一下我的第一个连接,或者下面的example,看看有什么Linux设置没有设的。
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841897/Zynq+UltraScale+MPSoC+-+64-bit+DDR+access+with+ECC
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励