[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