From patchwork Fri Jul 6 11:50:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [U-Boot,v2,2/2] km_arm: enable SDRAM window size fixup Date: Fri, 06 Jul 2012 01:50:17 -0000 From: Gerlando Falauto X-Patchwork-Id: 169460 Message-Id: <1341575417-7719-2-git-send-email-gerlando.falauto@keymile.com> To: u-boot@lists.denx.de Cc: Valentin Longchamp , Holger Brunck , Gerlando Falauto Size of the SDRAM chips might differ between any two (otherwise identical) instances of the same board. So change board_early_init_f() to use km_sdram_bs_set(), in order to fixup the window size register at runtime, according to the detected SDRAM size. Signed-off-by: Gerlando Falauto Cc: Valentin Longchamp Cc: Holger Brunck --- changes for v2: - rebase to current u-boot-marvell.git master branch board/keymile/km_arm/km_arm.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c index 2b2ca39..24cf6c7 100644 --- a/board/keymile/km_arm/km_arm.c +++ b/board/keymile/km_arm/km_arm.c @@ -241,6 +241,17 @@ int misc_init_r(void) return 0; } +static void dram_size_fixup(void) +{ + u32 size; + + /* probe currently equipped RAM size */ + size = get_ram_size((void *)kw_sdram_bar(0), kw_sdram_bs(0)); + + /* fixup SDRAM window size accordingly */ + kw_sdram_bs_set(0, size); +} + int board_early_init_f(void) { #if defined(CONFIG_SOFT_I2C) @@ -251,6 +262,7 @@ int board_early_init_f(void) writel(tmp & (~KM_KIRKWOOD_SOFT_I2C_GPIOS) , KW_GPIO0_BASE + 4); #endif + dram_size_fixup(); kirkwood_mpp_conf(kwmpp_config, NULL); return 0; }