summaryrefslogtreecommitdiff
path: root/src/cpu/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/x86')
-rw-r--r--src/cpu/x86/16bit/reset16.lds2
-rw-r--r--src/cpu/x86/lapic/lapic_cpu_init.c13
-rw-r--r--src/cpu/x86/mtrr/mtrr.c4
3 files changed, 13 insertions, 6 deletions
diff --git a/src/cpu/x86/16bit/reset16.lds b/src/cpu/x86/16bit/reset16.lds
index 4c42c76b37..f32597c00c 100644
--- a/src/cpu/x86/16bit/reset16.lds
+++ b/src/cpu/x86/16bit/reset16.lds
@@ -5,7 +5,7 @@
SECTIONS {
/* Trigger an error if I have an unuseable start address */
- _ROMTOP = (_start >= 0xffff0000) ? 0xfffffff0 : 0xffffffff8;
+ _ROMTOP = (_start >= 0xffff0000) ? 0xfffffff0 : 0xfffffff8;
. = _ROMTOP;
.reset . : {
*(.reset)
diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c
index 20615e61c8..7c40f6a3c0 100644
--- a/src/cpu/x86/lapic/lapic_cpu_init.c
+++ b/src/cpu/x86/lapic/lapic_cpu_init.c
@@ -11,6 +11,7 @@
#if CONFIG_SMP == 1
+
/* This is a lot more paranoid now, since Linux can NOT handle
* being told there is a CPU when none exists. So any errors
* will return 0, meaning no CPU.
@@ -229,12 +230,16 @@ int start_cpu(device_t cpu)
void secondary_cpu_init(void)
{
atomic_inc(&active_cpus);
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
spin_lock(&start_cpu_lock);
+ #endif
#endif
cpu_initialize();
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
spin_unlock(&start_cpu_lock);
+ #endif
#endif
atomic_dec(&active_cpus);
stop_this_cpu();
@@ -260,8 +265,10 @@ static void initialize_other_cpus(struct bus *cpu_bus)
printk_err("CPU %u would not start!\n",
cpu->path.u.apic.apic_id);
}
-#if CONFIG_MAX_CPUS>2
+#if SERIAL_CPU_INIT == 1
+ #if CONFIG_MAX_CPUS>2
udelay(10);
+ #endif
#endif
}
diff --git a/src/cpu/x86/mtrr/mtrr.c b/src/cpu/x86/mtrr/mtrr.c
index 1c028a9ea1..59f9ca1e91 100644
--- a/src/cpu/x86/mtrr/mtrr.c
+++ b/src/cpu/x86/mtrr/mtrr.c
@@ -236,8 +236,8 @@ static unsigned int range_to_mtrr(unsigned int reg,
sizek = 1 << align;
printk_debug("Setting variable MTRR %d, base: %4dMB, range: %4dMB, type %s\n",
reg, range_startk >>10, sizek >> 10,
- (type==MTRR_TYPE_UNCACHEABLE)?"NC":
- ((type==MTRR_TYPE_WRBACK)?"WB":"Other")
+ (type==MTRR_TYPE_UNCACHEABLE) ? "NC" :
+ ((type==MTRR_TYPE_WRBACK) ? "WB" : "Other")
);
set_var_mtrr(reg++, range_startk, sizek, type);
range_startk += sizek;