[U-Boot] Wrong RAM Size on Devkit8000

Andreas Bießmann andreas.devel at googlemail.com
Wed May 15 09:44:05 CEST 2013


Dear Maxime Ripard,

(CCing Board Maintainer)

On 05/14/2013 04:25 PM, Maxime Ripard wrote:
> Hi,
> 
> I'm currently testing u-boot 2013.04 with SPL on a Devkit8000 with 256MB
> of RAM.
> 
> Trouble is, it only detects 128MB of RAM. The x-loader found on the NAND
> detects 256MB and works perfectly with it.
> 
> I obviously tried to change the mcfg field of the timings structure to
> be at MICRON_V_MCFG_165(256 << 20), however, while it obviously detects
> 256MB of RAM, it then crashes quite badly when booting to a userspace
> (and actually using that much RAM I guess). It works perfectly fine
> though with only 128MB of RAM, so I think the timings are ok.

I guess this is linux related. We have the same problem with tricorder
board here. Please have a look at linux kernel
a/a/mach-omap2/board-devkit8000.c and check the following line:

---8<---
	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
				  mt46h32m32lf6_sdrc_params);
--->8---

The mt64h32m32 is a 1Gb device which is 128MiB. I think is an leftover
from the very beginning of these bords in linux. Maybe in former days
the boot-loader did not initialize SDRAM correctly so it was required to
re-write the timing registers in linux. Nowadays this should be removed.

> -- Boot from the NAND, with stock uboot/x-loader from TimLL -----------
> X-Loader 1.41
> Starting OS Bootloader...
> 
> 
> U-Boot 1.3.3-svn (Mar 16 2012 - 17:38:47)
> 
> OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
> OMAP3 DevKit8000 Board + LPDDR/NAND
> DRAM:  256 MB
> NAND:  512 MiB
> Using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Hit space key to stop autoboot:  0
> 
> 
> -- Boot from the MMC, using vanilla u-boot 2013.04 ---------------------
> U-Boot SPL 2013.04 (May 14 2013 - 16:12:21)
> OMAP SD/MMC: 0
> reading u-boot.img
> reading u-boot.img
> 
> 
> U-Boot 2013.04 (May 14 2013 - 16:12:21)
> 
> OMAP3530-GP ES3.1.2, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
> OMAP3 DevKit8000 + LPDDR/NAND
> I2C:   ready
> DRAM:  128 MiB
> NAND:  512 MiB
> MMC:   OMAP SD/MMC: 0
> *** Warning - bad CRC, using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> ethaddr not set, using Die ID
> Die ID #5910000700000000015470c40101a01e
> Net:   dm9000
> Hit any key to stop autoboot:  0
> 
> Any ideas on how to solve this?

Patch u-boot to detect whether it needs to initialize 256MiB or 128MiB.
Initialize timings correctly and remove the mentioned kernel re-timing.
Patches are welcome (I havn't fixed the tricorder issue til now ... ;).

Best regards

Andreas Bießmann


More information about the U-Boot mailing list