Somehow we need 1.39V for the 4GB DDR3 to work reliably. No idea so far why this is though. --- board/goldelico/letux-cortex15/lc15.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/board/goldelico/letux-cortex15/lc15.c b/board/goldelico/letux-cortex15/lc15.c --- a/board/goldelico/letux-cortex15/lc15.c +++ b/board/goldelico/letux-cortex15/lc15.c @@ -248,6 +248,8 @@ static void simple_ram_test(void) printf("WARNING: DDR RAM is not working! (%x)\n", v[0]); }
+#define SMPS6_VOLTAGE 0x2f + int board_mmc_init(bd_t *bis) { int hard_select = 7; /* gpio to select uSD (0) or eMMC (1) by external hw signal */ @@ -256,6 +258,23 @@ int board_mmc_init(bd_t *bis)
int val; /* is the value of soft_select gpio after processing */
+#ifdef CONFIG_DUAL_RANK_DDR3 + int err; + + /* + * REVISIT: Somehow the 4GB K4B8G1646D-MYK0 part needs SMPS9 voltage + * set to 1.39V (0x5f) instead of 1.35V (0x5d) with 1.37V (0x5d) + * also being flakey. + */ + if (running_from_sdram()) { + err = palmas_i2c_write_u8(TWL603X_CHIP_P1, + SMPS6_VOLTAGE, 0x5f); + if (err) + printf("Could not raise SMPS9 voltage for DDR3: %i\n", + err); + } +#endif + simple_ram_test(); int vers = get_board_version(); #if 1