From 3566b3d545dd13f3760e6aa1fc50159243991e1d Mon Sep 17 00:00:00 2001 From: Eric Biederman Date: Wed, 27 Oct 2004 01:18:16 +0000 Subject: - Bug fixes to the P-III support - Initial Pentium-M support git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1718 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/cpu/intel/model_69x/Config.lb | 9 ++++ src/cpu/intel/model_69x/model_69x_init.c | 49 ++++++++++++++++++++++ src/cpu/intel/model_6dx/Config.lb | 9 ++++ src/cpu/intel/model_6dx/model_6dx_init.c | 49 ++++++++++++++++++++++ src/cpu/intel/model_6xx/model_6xx_init.c | 4 +- src/cpu/intel/socket_mPGA479M/Config.lb | 4 ++ src/cpu/intel/socket_mPGA479M/chip.h | 4 ++ src/cpu/intel/socket_mPGA479M/socket_mPGA479M.c | 7 ++++ src/cpu/intel/socket_mPGA603/chip.h | 4 +- .../intel/socket_mPGA603/socket_mPGA603_400Mhz.c | 2 +- 10 files changed, 136 insertions(+), 5 deletions(-) create mode 100644 src/cpu/intel/model_69x/Config.lb create mode 100644 src/cpu/intel/model_69x/model_69x_init.c create mode 100644 src/cpu/intel/model_6dx/Config.lb create mode 100644 src/cpu/intel/model_6dx/model_6dx_init.c create mode 100644 src/cpu/intel/socket_mPGA479M/Config.lb create mode 100644 src/cpu/intel/socket_mPGA479M/chip.h create mode 100644 src/cpu/intel/socket_mPGA479M/socket_mPGA479M.c diff --git a/src/cpu/intel/model_69x/Config.lb b/src/cpu/intel/model_69x/Config.lb new file mode 100644 index 0000000000..03a4fd70fa --- /dev/null +++ b/src/cpu/intel/model_69x/Config.lb @@ -0,0 +1,9 @@ +dir /cpu/x86/tsc +dir /cpu/x86/mtrr +dir /cpu/x86/fpu +dir /cpu/x86/mmx +dir /cpu/x86/sse +dir /cpu/x86/lapic +dir /cpu/x86/cache +dir /cpu/intel/microcode +driver model_69x_init.o diff --git a/src/cpu/intel/model_69x/model_69x_init.c b/src/cpu/intel/model_69x/model_69x_init.c new file mode 100644 index 0000000000..43c1f252a7 --- /dev/null +++ b/src/cpu/intel/model_69x/model_69x_init.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static uint32_t microcode_updates[] = { + /* Dummy terminator */ + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, +}; + + +static void model_69x_init(device_t dev) +{ + /* Turn on caching if we haven't already */ + x86_enable_cache(); + x86_mtrr_check(); + + /* Update the microcode */ + intel_update_microcode(microcode_updates); + + /* Enable the local cpu apics */ + setup_lapic(); +}; + +static struct device_operations cpu_dev_ops = { + .init = model_69x_init, +}; +static struct cpu_device_id cpu_table[] = { +#if 0 + { X86_VENDOR_INTEL, 0x0695 }, /* Pentium M */ +#endif + { 0, 0 }, +}; + +static struct cpu_driver driver __cpu_driver = { + .ops = &cpu_dev_ops, + .id_table = cpu_table, +}; diff --git a/src/cpu/intel/model_6dx/Config.lb b/src/cpu/intel/model_6dx/Config.lb new file mode 100644 index 0000000000..46656a005d --- /dev/null +++ b/src/cpu/intel/model_6dx/Config.lb @@ -0,0 +1,9 @@ +dir /cpu/x86/tsc +dir /cpu/x86/mtrr +dir /cpu/x86/fpu +dir /cpu/x86/mmx +dir /cpu/x86/sse +dir /cpu/x86/lapic +dir /cpu/x86/cache +dir /cpu/intel/microcode +driver model_6dx_init.o diff --git a/src/cpu/intel/model_6dx/model_6dx_init.c b/src/cpu/intel/model_6dx/model_6dx_init.c new file mode 100644 index 0000000000..b646066eb6 --- /dev/null +++ b/src/cpu/intel/model_6dx/model_6dx_init.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static uint32_t microcode_updates[] = { + /* Dummy terminator */ + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, +}; + + +static void model_6dx_init(device_t dev) +{ + /* Turn on caching if we haven't already */ + x86_enable_cache(); + x86_mtrr_check(); + + /* Update the microcode */ + intel_update_microcode(microcode_updates); + + /* Enable the local cpu apics */ + setup_lapic(); +}; + +static struct device_operations cpu_dev_ops = { + .init = model_6dx_init, +}; +static struct cpu_device_id cpu_table[] = { +#if 0 + { X86_VENDOR_INTEL, 0x06D6 }, /* Pentium M on 90nm with 2MiB of L2 cache */ +#endif + { 0, 0 }, +}; + +static struct cpu_driver driver __cpu_driver = { + .ops = &cpu_dev_ops, + .id_table = cpu_table, +}; diff --git a/src/cpu/intel/model_6xx/model_6xx_init.c b/src/cpu/intel/model_6xx/model_6xx_init.c index 43baf6e346..d33ac58dfd 100644 --- a/src/cpu/intel/model_6xx/model_6xx_init.c +++ b/src/cpu/intel/model_6xx/model_6xx_init.c @@ -26,7 +26,7 @@ static uint32_t microcode_updates[] = { }; -static void model_f0x_init(device_t dev) +static void model_6xx_init(device_t dev) { /* Turn on caching if we haven't already */ x86_enable_cache(); @@ -40,7 +40,7 @@ static void model_f0x_init(device_t dev) }; static struct device_operations cpu_dev_ops = { - .init = model_f0x_init, + .init = model_6xx_init, }; static struct cpu_device_id cpu_table[] = { { X86_VENDOR_INTEL, 0x0672 }, diff --git a/src/cpu/intel/socket_mPGA479M/Config.lb b/src/cpu/intel/socket_mPGA479M/Config.lb new file mode 100644 index 0000000000..70eda9a2fb --- /dev/null +++ b/src/cpu/intel/socket_mPGA479M/Config.lb @@ -0,0 +1,4 @@ +config chip.h +object socket_mPGA479M.o +dir /cpu/intel/model_69x +dir /cpu/intel/model_6dx diff --git a/src/cpu/intel/socket_mPGA479M/chip.h b/src/cpu/intel/socket_mPGA479M/chip.h new file mode 100644 index 0000000000..b157416a1a --- /dev/null +++ b/src/cpu/intel/socket_mPGA479M/chip.h @@ -0,0 +1,4 @@ +extern struct chip_operations cpu_intel_socket_mPGA479_control; + +struct cpu_intel_socket_mPGA479_config { +}; diff --git a/src/cpu/intel/socket_mPGA479M/socket_mPGA479M.c b/src/cpu/intel/socket_mPGA479M/socket_mPGA479M.c new file mode 100644 index 0000000000..980abe979d --- /dev/null +++ b/src/cpu/intel/socket_mPGA479M/socket_mPGA479M.c @@ -0,0 +1,7 @@ +#include +#include "chip.h" + + +struct chip_opertations cpu_intel_socket_mPGA479M_control = { + .name = "socket mPGA479M", +}; diff --git a/src/cpu/intel/socket_mPGA603/chip.h b/src/cpu/intel/socket_mPGA603/chip.h index def3e9c02f..eee4b9cf90 100644 --- a/src/cpu/intel/socket_mPGA603/chip.h +++ b/src/cpu/intel/socket_mPGA603/chip.h @@ -1,4 +1,4 @@ -extern struct chip_operations cpu_intel_socket_mPGA603_400Mhz_control; +extern struct chip_operations cpu_intel_socket_mPGA603_control; -struct cpu_intel_socket_mPGA603_400Mhz_config { +struct cpu_intel_socket_mPGA603_config { }; diff --git a/src/cpu/intel/socket_mPGA603/socket_mPGA603_400Mhz.c b/src/cpu/intel/socket_mPGA603/socket_mPGA603_400Mhz.c index 164da7f27f..ef43e98877 100644 --- a/src/cpu/intel/socket_mPGA603/socket_mPGA603_400Mhz.c +++ b/src/cpu/intel/socket_mPGA603/socket_mPGA603_400Mhz.c @@ -2,6 +2,6 @@ #include "chip.h" -struct chip_opertations cpu_intel_socket_mPGA603_400Mhz_control = { +struct chip_opertations cpu_intel_socket_mPGA603_control = { .name = "socket mPGA603_400Mhz", }; -- cgit v1.2.3