diff --git a/src/mainboard/ibm/e325/auto.c b/src/mainboard/ibm/e325/auto.c index dbbcbf597b..b1c9e772d5 100644 --- a/src/mainboard/ibm/e325/auto.c +++ b/src/mainboard/ibm/e325/auto.c @@ -158,16 +158,21 @@ static void main(unsigned long bist) }; int needs_reset; + unsigned nodeid; + if (bist == 0) { /* Skip this if there was a built in self test failure */ amd_early_mtrr_init(); enable_lapic(); init_timer(); + + nodeid = lapicid() & 0xf; + /* Has this cpu already booted? */ - if (cpu_init_detected()) { + if (cpu_init_detected(nodeid)) { asm volatile ("jmp __cpu_reset"); } - distinguish_cpu_resets(); + distinguish_cpu_resets(nodeid); if (!boot_cpu()) { stop_this_cpu(); } diff --git a/src/mainboard/ibm/e325/failover.c b/src/mainboard/ibm/e325/failover.c index e351cae83d..ed5ce32d81 100644 --- a/src/mainboard/ibm/e325/failover.c +++ b/src/mainboard/ibm/e325/failover.c @@ -13,11 +13,14 @@ static unsigned long main(unsigned long bist) { + unsigned nodeid; /* Make cerain my local apic is useable */ enable_lapic(); + nodeid = lapicid() & 0xf; + /* Is this a cpu only reset? */ - if (cpu_init_detected()) { + if (cpu_init_detected(nodeid)) { if (last_boot_normal()) { goto normal_image; } else { diff --git a/targets/ibm/e325/Config.lb b/targets/ibm/e325/Config.lb index 0a9d6a02c2..709c1d853a 100644 --- a/targets/ibm/e325/Config.lb +++ b/targets/ibm/e325/Config.lb @@ -1,87 +1,9 @@ # the IBM E325 # This will make a target directory of ./e325 -loadoptions - target e325 -uses ARCH -uses CONFIG_COMPRESS -uses CONFIG_IOAPIC -uses CONFIG_ROM_STREAM -uses CONFIG_ROM_STREAM_START -uses CONFIG_SERIAL_POST -uses NO_POST -uses CONFIG_UDELAY_TSC -uses CPU_FIXUP -uses FALLBACK_SIZE -uses HAVE_FALLBACK_BOOT -uses HAVE_MP_TABLE -uses HAVE_PIRQ_TABLE -uses HAVE_HARD_RESET -uses i586 -uses i686 -uses INTEL_PPRO_MTRR -uses HEAP_SIZE -uses IRQ_SLOT_COUNT -uses k7 -uses k8 -uses MAINBOARD_PART_NUMBER -uses MAINBOARD_VENDOR -uses CONFIG_SMP -uses CONFIG_MAX_CPUS -uses MEMORY_HOLE -uses PAYLOAD_SIZE -uses _RAMBASE -uses _ROMBASE -uses ROM_IMAGE_SIZE -uses ROM_SECTION_OFFSET -uses ROM_SECTION_SIZE -uses ROM_SIZE -uses STACK_SIZE -uses USE_FALLBACK_IMAGE -uses USE_OPTION_TABLE -uses HAVE_OPTION_TABLE -uses MAXIMUM_CONSOLE_LOGLEVEL -uses DEFAULT_CONSOLE_LOGLEVEL -uses CONFIG_CONSOLE_SERIAL8250 -uses MAINBOARD -uses CONFIG_CHIP_CONFIGURE -uses XIP_ROM_SIZE -uses XIP_ROM_BASE -uses LINUXBIOS_EXTRA_VERSION - -option CONFIG_CHIP_CONFIGURE=1 - -option MAXIMUM_CONSOLE_LOGLEVEL=9 -option DEFAULT_CONSOLE_LOGLEVEL=9 -option CONFIG_CONSOLE_SERIAL8250=1 -option CONFIG_SERIAL_POST=1 -option NO_POST=0 - -option CPU_FIXUP=1 -option CONFIG_UDELAY_TSC=0 -option i686=1 -option i586=1 -option INTEL_PPRO_MTRR=1 -option k7=1 -option k8=1 - -option ROM_SIZE=1048576 - - -option HAVE_OPTION_TABLE=1 -option CONFIG_ROM_STREAM=1 -option HAVE_FALLBACK_BOOT=1 - -### -### Compute the location and size of where this firmware image -### (linuxBIOS plus bootloader) will live in the boot rom chip. -### -option FALLBACK_SIZE=131072 - -## LinuxBIOS C code runs at this location in RAM -option _RAMBASE=0x00004000 +mainboard ibm/e325 # ### @@ -95,16 +17,16 @@ romimage "normal" option USE_FALLBACK_IMAGE=0 option ROM_IMAGE_SIZE=0x10000 option LINUXBIOS_EXTRA_VERSION=".0Normal" - mainboard ibm/e325 - payload ../../filo.elf +# payload ../../filo.elf + payload /home/ollie/work/filo-0.4.1/filo.elf end romimage "fallback" option USE_FALLBACK_IMAGE=1 option ROM_IMAGE_SIZE=0x10000 option LINUXBIOS_EXTRA_VERSION=".0Fallback" - mainboard ibm/e325 - payload ../../filo.elf +# payload ../../filo.elf + payload /home/ollie/work/filo-0.4.1/filo.elf # use this to test a build if you don't have the etherboot # payload /etc/hosts end