cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
545 Views
Registered: ‎07-08-2018

ECC poison

Hi,

I'm using ECC to test ddr4, and I find two registers named  ECCPOISONADDR0 and ECCPOISONADDR1,

ECCPOISONADDR0  need rank and column values.

ECCPOISONADDR1 need bank bank-group an row values.

What should I do to get these values.

I got a memory address 0X9BA17000, 

ddr4:

      10bits column

      16bits row

      2 bits bank

      1 bit   bank group

      2 chips = x16 + x16 = 32bits

      

I had tried :

           column = (0X9BA17000 >> 2) & 0x00003FFF

           row =(( 0X9BA17000 >>2 )>> 10) & 0x0000FFFF

           bank = ( (0X9BA17000>>2) >> 26) & 0x00000003

           bank group = ( (0X9BA17000>>2) >> 28) & 0x00000001

That is right?

If there is others  registers can give out more infomation, please help point them out.

I had tried the method in the link, and got nothing except the value 0x00001234.

     https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841897/Zynq+UltraScale+MPSoC+-+64-bit+DDR+access+with+ECC

 

 I just find a hint in the ECCPOISONADDR0, 'This register is static. Static registers can only be written when the controller is in reset.'

If  this register need reset, what should I do to program this register in my app?

image.png

 

Thanks,

yang_hailei

 

 

0 Kudos
Reply
0 Replies