mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
Made changes to allow one cpu to be plugged into a SMP board.
This commit is contained in:
parent
8cdc0de093
commit
ec2d28a287
1 changed files with 14 additions and 13 deletions
|
@ -162,10 +162,17 @@ static void wait_for_other_cpus(void)
|
||||||
}
|
}
|
||||||
for(i = 0; i < MAX_CPUS; i++) {
|
for(i = 0; i < MAX_CPUS; i++) {
|
||||||
if (!(processor_map[i] & CPU_ENABLED)) {
|
if (!(processor_map[i] & CPU_ENABLED)) {
|
||||||
printk_err("CPU %d/%u did not initialize!\n",
|
if(initial_apicid[i] == -1) {
|
||||||
i, initial_apicid[i]);
|
printk_err("CPU %d is not installed\n",
|
||||||
processor_map[i] = 0;
|
i);
|
||||||
mainboard_cpu_fixup(i);
|
processor_map[i] = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printk_err("CPU %d/%u did not initialize!\n",
|
||||||
|
i, initial_apicid[i]);
|
||||||
|
processor_map[i] = 0;
|
||||||
|
mainboard_cpu_fixup(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printk_debug("All AP CPUs stopped\n");
|
printk_debug("All AP CPUs stopped\n");
|
||||||
|
@ -237,9 +244,6 @@ void write_tables(struct mem_range *mem)
|
||||||
|
|
||||||
void hardwaremain(int boot_complete)
|
void hardwaremain(int boot_complete)
|
||||||
{
|
{
|
||||||
#if CONFIG_ASSIGNIRQ == 1
|
|
||||||
void assignirq(void);
|
|
||||||
#endif
|
|
||||||
/* Processor ID of the BOOT cpu (i.e. the one running this code) */
|
/* Processor ID of the BOOT cpu (i.e. the one running this code) */
|
||||||
unsigned long boot_cpu;
|
unsigned long boot_cpu;
|
||||||
int boot_index;
|
int boot_index;
|
||||||
|
@ -326,6 +330,9 @@ void hardwaremain(int boot_complete)
|
||||||
printk_spew("BOOT CPU is %d\n", boot_cpu);
|
printk_spew("BOOT CPU is %d\n", boot_cpu);
|
||||||
processor_map[boot_index] = CPU_BOOTPROCESSOR|CPU_ENABLED;
|
processor_map[boot_index] = CPU_BOOTPROCESSOR|CPU_ENABLED;
|
||||||
|
|
||||||
|
// generic mainboard fixup
|
||||||
|
mainboard_fixup();
|
||||||
|
|
||||||
/* Now start the other cpus initializing
|
/* Now start the other cpus initializing
|
||||||
* The sooner they start the sooner they stop.
|
* The sooner they start the sooner they stop.
|
||||||
*/
|
*/
|
||||||
|
@ -333,9 +340,6 @@ void hardwaremain(int boot_complete)
|
||||||
startup_other_cpus(processor_map);
|
startup_other_cpus(processor_map);
|
||||||
post_code(0x77);
|
post_code(0x77);
|
||||||
|
|
||||||
// generic mainboard fixup
|
|
||||||
mainboard_fixup();
|
|
||||||
|
|
||||||
#ifndef MAINBOARD_FIXUP_IN_CHARGE
|
#ifndef MAINBOARD_FIXUP_IN_CHARGE
|
||||||
|
|
||||||
post_code(0x91);
|
post_code(0x91);
|
||||||
|
@ -361,9 +365,6 @@ void hardwaremain(int boot_complete)
|
||||||
|
|
||||||
/* to do: intel_serial_on(); */
|
/* to do: intel_serial_on(); */
|
||||||
final_mainboard_fixup();
|
final_mainboard_fixup();
|
||||||
#if CONFIG_ASSIGNIRQ == 1
|
|
||||||
assignirq();
|
|
||||||
#endif
|
|
||||||
post_code(0xec);
|
post_code(0xec);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue