x86: Fix DRAM bank size init with generic board

The intention of the memory init code is that it should work the same with
CONFIG_SYS_GENERIC_BOARD and without. This is tricky because dram_init()
is called prior to relocation with generic board (matching other archs)
and after relocation without generic board.

Adjust the init sequence so that dram_init() is not called in the generic
board case, which seems like the easiest fix for now. Also ensure that
relocation addresses are still calculated.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2013-04-15 11:22:49 +00:00
parent cba6494f24
commit 8b42dfc3b6
2 changed files with 7 additions and 3 deletions

View File

@ -113,7 +113,7 @@ int dram_init_f(void)
return 0;
}
int dram_init(void)
int dram_init_banksize(void)
{
int i, j;
@ -132,3 +132,8 @@ int dram_init(void)
}
return 0;
}
int dram_init(void)
{
return dram_init_banksize();
}

View File

@ -856,8 +856,7 @@ static init_fnc_t init_sequence_f[] = {
#endif
#ifdef CONFIG_X86
dram_init_f, /* configure available RAM banks */
/* x86 would prefer that this happens after relocation */
dram_init,
calculate_relocation_address,
#endif
announce_dram_init,
/* TODO: unify all these dram functions? */