We are bringing up a custom am335x design with a single chip lpDDR 512Mb memory. The memory appears to be functioning but U-boot reports only 64Mb
Bank #0: 80000000 64 MiB
U-Boot# bdinfo
arch_number = 0x00000E05
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000
-> size = 0x04000000
We configured the EMIF regs, using both speadsheet tools and following both these links
-- processors.wiki.ti.com/.../AM335x_EMIF_Configuration_tips
and
-- http://e2e.ti.com/support/arm/sitara_arm/f/791/p/301970/1052297
So how is DRAM size calculated in u-boot? We're using SDK 8.00. Looks like only the settings of the EMIF_SDCFG are related to sizing. We have setup a new set of reg values in ddr_defs.h based on this MT46H32M16LF part. Our u-boot code path sees sdram_init called in <uboot dir>/board/ti/am335x/board.c which in turn calls config_ddr() in <uboot dir>/arch/arm/cpu/arm7/am33xx/emif4.c. Looks like the bank size is being set somewhere and only one bank is being recognized with 1/2 the size it's supposed to be.
Thanks, Tom