[U-Boot] A10 bring up and DRAM configuration procedure

Piotr Król piotr.krol at 3mdeb.com
Sun Apr 3 16:26:44 CEST 2016


Hi all,
I'm trying to power on custom A10 hardware based on Cubieboard1. DDR3
modules used are MT41J64M16 [1] - at least FBGA Code D9MNQ match this
hardware.

I'm using mainline U-Boot built using Buildroot with Cubieboard defconfig.
Unfortunately U-Boot hangs "randomly" at various locations. Farthest I can get
is:

## Booting kernel from Legacy Image at 48000000 ...
   Image Name:   Linux-3.4.103
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4358824 Bytes = 4.2 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... 

This hangs in crc32_no_comp [2]. Although this is not 100% reproducible. Full
bootlog [5].

I made tests using various DRAM parameters configurations and those take
booting process farthest are with CONFIG_DRAM_CLK=240:

# below gives ~80% chance to get to Verifying Checksum
CONFIG_DRAM_CLK=240
CONFIG_DRAM_TIMINGS_DDR3_1066F_1333H=y

# below gives ~85% chance to get to Verifying Checksum
CONFIG_DRAM_CLK=240
CONFIG_DRAM_TIMINGS_VENDOR_MAGIC=y

Other configuration like CONFIG_DRAM_CLK=360 give worst results. For
240MHz I was even able get to "Starting kernel ...", but this is
sporadic. I disabled in U-Boot as much I could, my defconfig is here
[3].

>From what I was able to found this is result of incorrect DRAM configuration
[4]. Anyone can confirm that this is correct diagnosis ? If not then what test
I can perform to gain better confidence ?

Other question is how to proceed from this point ? I have datasheet for DDR3,
but number of possible parameters to tweak seems to be overwhelming. Also as
sunxi wiki claim timing from datasheet have to be converted to number of cycles
- I'm not sure how to approach that. Is there any guide where to start ? sunxi
wiki describe calibration, when it is possible to run system, but what can be
done in situation when U-Boot cannot reach that state ?

If anyone more experienced can advise what can be done at this point I would
appreciate.

[1] http://www.micron.com/~/media/Documents/Products/Data%20Sheet/DRAM/DDR3/1Gb_DDR3_SDRAM.pdf
[2] http://git.denx.de/?p=u-boot.git;a=blob;f=lib/crc32.c;h=97592124867abb815d576899f8789545c3aef1aa;hb=HEAD#l200
[3] https://gist.github.com/pietrushnic/ea41a4ae38b7af8a6fa456113ce19af8
[4] http://www.denx.de/wiki/view/DULG/UBootCrashAfterRelocation
[5] https://gist.github.com/pietrushnic/d6a3d6c0b4a20a3226dfb67c4d129142

-- 
Best Regards,
Piotr Król
Embedded Systems Consultant
http://3mdeb.com | @3mdeb_com


More information about the U-Boot mailing list