summaryrefslogtreecommitdiff
path: root/src/mainboard/tyan/s2880/auto.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/tyan/s2880/auto.c')
-rw-r--r--src/mainboard/tyan/s2880/auto.c45
1 files changed, 2 insertions, 43 deletions
diff --git a/src/mainboard/tyan/s2880/auto.c b/src/mainboard/tyan/s2880/auto.c
index 2532386132..b8ce483fc0 100644
--- a/src/mainboard/tyan/s2880/auto.c
+++ b/src/mainboard/tyan/s2880/auto.c
@@ -24,6 +24,7 @@
#include "superio/winbond/w83627hf/w83627hf_early_serial.c"
#include "cpu/amd/mtrr/amd_earlymtrr.c"
#include "cpu/x86/bist.h"
+#include "cpu/amd/dualcore/dualcore.c"
#define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1)
@@ -149,46 +150,8 @@ static void main(unsigned long bist)
};
int needs_reset;
-#if CONFIG_LOGICAL_CPUS==1
- struct node_core_id id;
-#else
- unsigned nodeid;
-#endif
-
if (bist == 0) {
- /* Skip this if there was a built in self test failure */
- amd_early_mtrr_init();
-
-#if CONFIG_LOGICAL_CPUS==1
- set_apicid_cpuid_lo();
-#endif
-
- enable_lapic();
- init_timer();
-
-#if CONFIG_LOGICAL_CPUS==1
- id = get_node_core_id_x();
- if(id.coreid == 0) {
- if (cpu_init_detected(id.nodeid)) {
- asm volatile ("jmp __cpu_reset");
- }
- distinguish_cpu_resets(id.nodeid);
- }
-#else
- nodeid = lapicid();
- if (cpu_init_detected(nodeid)) {
- asm volatile ("jmp __cpu_reset");
- }
- distinguish_cpu_resets(nodeid);
-#endif
-
- if (!boot_cpu()
-#if CONFIG_LOGICAL_CPUS==1
- || (id.coreid != 0)
-#endif
- ) {
- stop_this_cpu(); // it will stop all cores except core0 of cpu0
- }
+ k8_init_and_stop_secondaries();
}
w83627hf_enable_serial(SERIAL_DEV, TTYS0_BASE);
@@ -201,10 +164,6 @@ static void main(unsigned long bist)
setup_default_resource_map();
needs_reset = setup_coherent_ht_domain();
-#if CONFIG_LOGICAL_CPUS==1
- start_other_cores();
-#endif
-
needs_reset |= ht_setup_chain(PCI_DEV(0, 0x18, 0), 0x80);
if (needs_reset) {
print_info("ht reset -\r\n");