[U-Boot] Incorrect board init with 256M RAM on MX31

Magnus Lilja lilja.magnus at gmail.com
Sun Aug 16 13:39:13 CEST 2009


2009/8/16 alfred steele <alfred.jaquez at gmail.com>:
> Hi All,
> When i use 128M  in my board configuration and pass the same to he
> kernel using bd_info , the linux kernel just boots up fine.  But when
> i change the config to put 256M which is the actual physical  DDR size
> on our board,
> the userspace crashes because of a "unhandled page fault"  via  Unable
> to handle kernel NULL pointer dereference".
> First off, perhaps the U-boot is not initializing the memory properly.
>  Although i thought, the board specific "dram_init" does it with the
> correct config params picked up from the board config file.

That depends on how your dram_init looks like, none of the i.MX31
dram_init's I've looked at handles more than one DRAM bank.

> I change the following in the board specific config:
> #define CONFIG_NR_DRAM_BANKS    2
> #define PHYS_SDRAM_1        CSD0_BASE
> #define PHYS_SDRAM_1_SIZE   (256 * 1024 * 1024)

Not that I've been working with multiple banks myself but if you have
2 banks then my guess is that you have to supply the start address and
size of each of the banks.

> What else does the uboot  need to convey to the kernel.
> I am using Freescale MX31 board.
> Any hints/clues?

You need to setup the SDRAM controller in i.MX31 to reflect your
actual DRAM configuration.

It also depends on if you have one 256M DRAM or two 128M.


More information about the U-Boot mailing list