imx6 solo with micron MT41K512M16 DDR3 problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6 solo with micron MT41K512M16 DDR3 problem

Jump to solution
882 Views
hailiu
Contributor IV

Dear community,

I used 2 micron MT41K512M16 ddr3 chips for the bus width 0f 32 bits. my board has a very strange problem. I did the ddr calibration using JLink probe,  it passed all the calibration, and the results are very close to the reference board's figures. but when I write a number to an address, the data is stored to the address with is 8 bytes above the specified address. Another problem is that if I read memory address between 0x08000000-0x0FFFFFFF, it will return a number although I don't have an EIM device, it suppose to failed the read. If I read the address above the 1GB, it can also return a value. 

My settings are:

MDASP=0x1F,

rows=16

cols=10

burst length=8

density=16 bits

following are my test results:

(gdb) monitor memU32 0x10000000
Reading from address 0x10000000 (Data = 0x7428B28E)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x74B2B20E)
(gdb) monitor memU32 0x10000000=0x11111111
Writing 0x11111111 @ address 0x10000000
(gdb) monitor memU32 0x10000000
Reading from address 0x10000000 (Data = 0x00000000)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000004
Reading from address 0x10000004 (Data = 0x00000000)
(gdb) monitor memU32 0x1000000c
Reading from address 0x1000000C (Data = 0x75C8B214)
(gdb) monitor memU32 0x10000004=0x22222222
Writing 0x22222222 @ address 0x10000004
(gdb) monitor memU32 0x10000004
Reading from address 0x10000004 (Data = 0x00000000)
(gdb) monitor memU32 0x1000000c
Reading from address 0x1000000C (Data = 0x22222222)
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000010
Reading from address 0x10000010 (Data = 0x2CAAA28A)
(gdb) monitor memU32 0x10000008=0x33333333
Writing 0x33333333 @ address 0x10000008
(gdb) monitor memU32 0x10000008
Reading from address 0x10000008 (Data = 0x11111111)
(gdb) monitor memU32 0x10000010
Reading from address 0x10000010 (Data = 0x33333333)
(gdb) monitor memU32 0x10000018
Reading from address 0x10000018 (Data = 0x74AAB28E)

(gdb)

0 Kudos
Reply
1 Solution
875 Views
igorpadykov
NXP Employee
NXP Employee

Hi

 

one can test various processor peripherals using SDK

https://github.com/RT-Thread/rt-thread/tree/master/bsp/imx6sx/iMX6_Platform_SDK

 

Best regards
igor

View solution in original post

0 Kudos
Reply
2 Replies
876 Views
igorpadykov
NXP Employee
NXP Employee

Hi

 

one can test various processor peripherals using SDK

https://github.com/RT-Thread/rt-thread/tree/master/bsp/imx6sx/iMX6_Platform_SDK

 

Best regards
igor

0 Kudos
Reply
870 Views
hailiu
Contributor IV

Dear igor,

I have the code you gave me. All write/reads are successful except the first two or three data. I will spend some time to find out the reason. It seems that you can not relay on debugger to test DDR.

thank you,

Hai

0 Kudos
Reply