This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP4430 SDRAM 16G bit support

Hello,

We have an OMAP4430 board in production and we change the sdram to elpida EDBA164B1PB-1D-F. This ddr Is 16G bit and max freq is 400Mhz .

How to configure the xloader 、uboot and kernel ?

1. In the xloader , we use correct DDR struct in /cpu/omap4/sdram_elpida.c ,

const struct ddr_regs ddr_regs_elpida4G_400mhz_2cs = {

     .tim1 = 0x10eb0662,

     .tim2 = 0x20370dd2,

     .tim3 = 0x00b1c33f,

     .phy_ctrl_1 = 049FF408,

     .ref_ctrl = 0x00000618,

     .config_init = 0x80800eb9,

     .config_final = 0x80801ab9,

     .zq_config = 0xd00b3215,

     .mr1 = 0x83,

     .mr2 = 0x4

};

2. In the u-boot , if we use bootarg : mem=2040M , system can enter Android 4AJ.1.1 ; if we use bootarg : mem=2G , system can't .

3. In the kernel , we modify the EMIF setting in the board file /arch/arm/mach-omap2/board-xxx.c :

static __initdata struct emif_device_details emif_devices_2g = {

     .cs0_device = &lpddr2_elpida_4G_S4_dev,

     .cs1_device = &lpddr2_elpida_4G_S4_dev

};

4. If we use bootarg : mem=2040M , system can enter Android 4AJ.1.1 . But when we run a memory test : allocate 200 MB memory , we have a kernel panic .

 

Many thanks in advance for any hint or advice.

 

  • Hi Ken,

    I suggest you also need to modify dmm_lisa_map register ( especially SYS_SIZE = 0x7) in order to use 2-GB selection.

    Please, check your omap revision first, and then modify dmm_lisa_map_3 register in the lisa_map_2G_x_2_x_2 / *lisa_map_2G_x_1_x_2 struct. It's located in the u-boot/ sources (arch/arm/cpu/armv7/omap4/sdram_elpida.c)

    By default it's configured for 1GB section - dmm_lisa_map_3 = 0x80640300.So, according to the TRM change to 0x80740300 .

    *lisa_map_2G_x_1_x_2  struct is used only for revision OMAP4430_ES1_0

  • Hi Georgi,

    We change dmm_lisa_map_3 to 0x80740300 , but when we run a memory test : allocate 200 MB memory , we still have a kernel panic .