Add AP detection to stage0 to prevent APs from re-initializing mainboard setup

that has already been done by the BSP. For single processor systems the CPU
flag is always 0, BSP. This code also moves the AP stop for K8 mainboards to
after memory setup so the AP's MTRRs can be setup to match system memory.

Signed-off-by: Marc Jones <marcj303@gmail.com>
Acked-by: Peter Stuge <peter@stuge.se>



git-svn-id: svn://coreboot.org/repository/coreboot-v3@1129 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Marc Jones 2009-02-10 22:41:35 +00:00
commit f2872767a2
9 changed files with 73 additions and 59 deletions

View file

@ -181,7 +181,6 @@ int main(void)
soft_reset();
}
#endif
allow_all_aps_stop(bsp_apicid);
//It's the time to set ctrl in sysinfo now;
fill_mem_ctrl(sysinfo->nodes, sysinfo->ctrl, spd_addr);
@ -190,12 +189,11 @@ int main(void)
memreset_setup();
//do we need apci timer, tsc...., only debug need it for better output
/* all ap stopped? */
// init_timer(); // Need to use TMICT to synconize FID/VID
sdram_initialize(sysinfo->nodes, sysinfo->ctrl, sysinfo);
/* After RAM is setup allow the APs to do RAM and MTRRs setup if needed. */
allow_all_aps_stop(bsp_apicid);
#if 0
print_pci_devices();
#endif

View file

@ -224,7 +224,6 @@ int main(void)
soft_reset_x(sysinfo->sbbusn, sysinfo->sbdn);
}
#endif
allow_all_aps_stop(bsp_apicid);
//It's the time to set ctrl in sysinfo now;
fill_mem_ctrl(sysinfo->nodes, sysinfo->ctrl, spd_addr);
@ -233,12 +232,11 @@ int main(void)
memreset_setup();
//do we need apci timer, tsc...., only debug need it for better output
/* all ap stopped? */
// init_timer(); // Need to use TMICT to synconize FID/VID
sdram_initialize(sysinfo->nodes, sysinfo->ctrl, sysinfo);
/* After RAM is setup allow the APs to do RAM and MTRRs setup if needed. */
allow_all_aps_stop(bsp_apicid);
#if 0
print_pci_devices();
#endif

View file

@ -134,7 +134,6 @@ int main(void)
printk(BIOS_INFO, "ht reset -\n");
soft_reset();
}
allow_all_aps_stop(bsp_apicid);
//It's the time to set ctrl in sysinfo now;
fill_mem_ctrl(sysinfo->nodes, sysinfo->ctrl, spd_addr);
@ -143,12 +142,11 @@ int main(void)
memreset_setup();
//do we need apci timer, tsc...., only debug need it for better output
/* all ap stopped? */
// init_timer(); // Need to use TMICT to synconize FID/VID
sdram_initialize(sysinfo->nodes, sysinfo->ctrl, sysinfo);
/* After RAM is setup allow the APs to do RAM and MTRRs setup if needed. */
allow_all_aps_stop(bsp_apicid);
printk(BIOS_DEBUG, "initram returns\n");
return 0;
}