[U-Boot] DDR2 configuration in MPC85xx
Werner Nedel
wmnedel at gmail.com
Thu May 14 19:28:51 CEST 2009
Hi,
I'm working on a mpc85xx board very similar to MPC8548CDS. I have 2 DIMMs
and each one with it own spd eeprom and with only one chip select (cs0 and
cs2). I'm trying to use two 1Gb DDR2s. My ddr configurations:
/* DDR Setup */
#define CONFIG_VERY_BIG_RAM
#define CONFIG_FSL_DDR2
#undef CONFIG_FSL_DDR_INTERACTIVE
#define CONFIG_SPD_EEPROM /* Use SPD EEPROM for DDR setup*/
#define CONFIG_DDR_SPD
#define CONFIG_DDR_DLL /* possible DLL fix needed */
#define CONFIG_ECC_INIT_VIA_DDRCONTROLLER /* DDR controller or DMA? */
#define CONFIG_MEM_INIT_VALUE 0xDeadBeef
#define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 /* DDR is system memory*/
#define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE
#define CONFIG_NUM_DDR_CONTROLLERS 2
#define CONFIG_DIMM_SLOTS_PER_CTLR 1
#define CONFIG_CHIP_SELECTS_PER_CTRL 1
/* I2C addresses of SPD EEPROMs */
#define SPD_EEPROM_ADDRESS1 0x51 /* CTLR 0 DIMM 0 */
#define SPD_EEPROM_ADDRESS2 0x53 /* CTLR 0 DIMM 1 */
Also, I'd changed my ddr.c as follow:
for (i = 0; i < CONFIG_DIMM_SLOTS_PER_CTLR; i++) {
if (ctrl_num == 0)
get_spd(&(ctrl_dimms_spd[i]), SPD_EEPROM_ADDRESS1);
if (ctrl_num == 1)
get_spd(&(ctrl_dimms_spd[i]), SPD_EEPROM_ADDRESS2);
}
and removing the ctrl_num checks that avoid ctrl_num = 1 access (in ddr.c
and ddr-gen2.c). My board hangs after initialize the DDR:
I2C: ready
DRAM: Initializing
4294963200M left unmapped
DDR: 2 GB
The tlb settings looks fine (debbug in setup_ddr_tlbs()):
ram_tlb_address: 0x0, ram_tlb_address: 0x0, ram_tlb_index: 0x8, tlb_size:
0xa
ram_tlb_address: 0x40000000, ram_tlb_address: 0x40000000, ram_tlb_index:
0x9, tlb_size: 0xa
Am I missing some configuration?
Thanks in advance,
Werner Nedel.
More information about the U-Boot
mailing list