Support for Intel Core Duo and Core 2 Duo (tm) CPUs.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3702 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer
2008-10-29 04:48:44 +00:00
committed by Stefan Reinauer
parent debb11fc1f
commit 00a889c8aa
17 changed files with 1323 additions and 5 deletions

View File

@@ -72,7 +72,7 @@ static void copy_and_run(unsigned cpu_reset)
__asm__ volatile (
"cli\n\t"
"leal _iseg, %edi\n\t"
"jmp %edi\n\t"
"jmp *%edi\n\t"
);
}

View File

@@ -437,6 +437,10 @@ static void wait_other_cpus_stop(struct bus *cpu_bus)
#define cpus_ready_for_init() do {} while(0)
#endif
#if HAVE_SMI_HANDLER
void smm_init(void);
#endif
void initialize_cpus(struct bus *cpu_bus)
{
struct device_path cpu_path;
@@ -457,14 +461,18 @@ void initialize_cpus(struct bus *cpu_bus)
cpu_path.type = DEVICE_PATH_CPU;
cpu_path.u.cpu.id = 0;
#endif
/* Find the device structure for the boot cpu */
info->cpu = alloc_find_dev(cpu_bus, &cpu_path);
#if CONFIG_SMP == 1
copy_secondary_start_to_1m_below(); // why here? In case some day we can start core1 in amd_sibling_init
#endif
#if HAVE_SMI_HANDLER
smm_init();
#endif
cpus_ready_for_init();
#if CONFIG_SMP == 1
@@ -477,7 +485,6 @@ void initialize_cpus(struct bus *cpu_bus)
/* Initialize the bootstrap processor */
cpu_initialize();
#if CONFIG_SMP == 1
#if SERIAL_CPU_INIT == 1
start_other_cpus(cpu_bus, info->cpu);
@@ -486,6 +493,5 @@ void initialize_cpus(struct bus *cpu_bus)
/* Now wait the rest of the cpus stop*/
wait_other_cpus_stop(cpu_bus);
#endif
}