Add Kconfig CPU speed selection to Geode GX2 boards.

This is Abuild and boot tested.

Signed-off-by: Nils Jacobs <njacobs8@hetnet.nl>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6023 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Nils Jacobs 2010-11-05 00:23:11 +00:00 committed by Uwe Hermann
parent f29b3b68c8
commit eca32808cb
5 changed files with 23 additions and 10 deletions

View File

@ -28,6 +28,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_PIRQ_TABLE select HAVE_PIRQ_TABLE
select BOARD_ROMSIZE_KB_256 select BOARD_ROMSIZE_KB_256
select POWER_BUTTON_FORCE_ENABLE select POWER_BUTTON_FORCE_ENABLE
select GX2_PROCESSOR_MHZ_366
config MAINBOARD_DIR config MAINBOARD_DIR
string string

View File

@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select UDELAY_TSC select UDELAY_TSC
select HAVE_PIRQ_TABLE select HAVE_PIRQ_TABLE
select BOARD_ROMSIZE_KB_256 select BOARD_ROMSIZE_KB_256
select GX2_PROCESSOR_MHZ_366
config MAINBOARD_DIR config MAINBOARD_DIR
string string

View File

@ -29,6 +29,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select PIRQ_ROUTE select PIRQ_ROUTE
select BOARD_ROMSIZE_KB_256 select BOARD_ROMSIZE_KB_256
select POWER_BUTTON_FORCE_DISABLE select POWER_BUTTON_FORCE_DISABLE
select GX2_PROCESSOR_MHZ_366
config MAINBOARD_DIR config MAINBOARD_DIR
string string

View File

@ -21,9 +21,19 @@ config NORTHBRIDGE_AMD_GX2
bool bool
select GEODE_VSA select GEODE_VSA
# Valid PROCESSOR_MHZ options: 300/366/400 MHz. # The GX2_PROCESSOR_MHZ options let you chose the correct GX2 processor
config PROCESSOR_MHZ # speed in the mainboard's Kconfig file.
int config GX2_PROCESSOR_MHZ_300
default 366 bool
depends on NORTHBRIDGE_AMD_GX2 config GX2_PROCESSOR_MHZ_366
bool
config GX2_PROCESSOR_MHZ_400
bool
# Map the config names to an integer (MHz).
config GX2_PROCESSOR_MHZ
int
default 300 if GX2_PROCESSOR_MHZ_300
default 366 if GX2_PROCESSOR_MHZ_366
default 400 if GX2_PROCESSOR_MHZ_400

View File

@ -71,14 +71,14 @@ static void pll_reset(void)
unsigned SyncBits; /* store the sync bits in up ebx */ unsigned SyncBits; /* store the sync bits in up ebx */
unsigned DEFAULT_FBDIV; unsigned DEFAULT_FBDIV;
if (CONFIG_PROCESSOR_MHZ == 400) { if (CONFIG_GX2_PROCESSOR_MHZ == 400) {
DEFAULT_FBDIV = 24; DEFAULT_FBDIV = 24;
} else if (CONFIG_PROCESSOR_MHZ == 366) { } else if (CONFIG_GX2_PROCESSOR_MHZ == 366) {
DEFAULT_FBDIV = 22; DEFAULT_FBDIV = 22;
} else if (CONFIG_PROCESSOR_MHZ == 300) { } else if (CONFIG_GX2_PROCESSOR_MHZ == 300) {
DEFAULT_FBDIV = 18; DEFAULT_FBDIV = 18;
} else { } else {
printk(BIOS_ERR, "Unsupported PROCESSOR_MHZ setting!\n"); printk(BIOS_ERR, "Unsupported GX2_PROCESSOR_MHZ setting!\n");
post_code(POST_PLL_CPU_VER_FAIL); post_code(POST_PLL_CPU_VER_FAIL);
__asm__ __volatile__("hlt\n"); __asm__ __volatile__("hlt\n");
} }
@ -195,6 +195,6 @@ static void pll_reset(void)
static unsigned int GeodeLinkSpeed(void) static unsigned int GeodeLinkSpeed(void)
{ {
unsigned geodelinkspeed; unsigned geodelinkspeed;
geodelinkspeed = ((CONFIG_PROCESSOR_MHZ * DEFAULT_VDIV) / DEFAULT_MDIV); geodelinkspeed = ((CONFIG_GX2_PROCESSOR_MHZ * DEFAULT_VDIV) / DEFAULT_MDIV);
return (geodelinkspeed); return (geodelinkspeed);
} }