summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/i386/smp/Config.lb2
-rw-r--r--src/mainboard/tyan/s2880/Config.lb68
-rw-r--r--src/mainboard/tyan/s2880/chip.h3
-rw-r--r--src/mainboard/tyan/s2880/mainboard.c30
4 files changed, 77 insertions, 26 deletions
diff --git a/src/arch/i386/smp/Config.lb b/src/arch/i386/smp/Config.lb
index fd7dba6181..d1e365c073 100644
--- a/src/arch/i386/smp/Config.lb
+++ b/src/arch/i386/smp/Config.lb
@@ -7,6 +7,6 @@ end
#object ioapic.o CONFIG_IOAPIC
if CONFIG_SMP
object start_stop.o
-# object secondary.S
+ object secondary.S
end
diff --git a/src/mainboard/tyan/s2880/Config.lb b/src/mainboard/tyan/s2880/Config.lb
index 59e5b90f03..a83389f0c1 100644
--- a/src/mainboard/tyan/s2880/Config.lb
+++ b/src/mainboard/tyan/s2880/Config.lb
@@ -3,6 +3,8 @@ uses HAVE_PIRQ_TABLE
uses USE_FALLBACK_IMAGE
uses USE_NORMAL_IMAGE
uses AMD8111_DEV
+uses MAINBOARD
+uses ARCH
#
#
###
@@ -14,13 +16,15 @@ uses AMD8111_DEV
### Build the objects we have code for in this directory.
###
##object mainboard.o
+config chip.h
+register "fixup_scsi" = "1"
driver mainboard.o
object static_devices.o
if HAVE_MP_TABLE object mptable.o end
if HAVE_PIRQ_TABLE object irq_tables.o end
#
arch i386 end
-cpu k8 end
+#cpu k8 end
#
###
### Build our 16 bit and 32 bit linuxBIOS entry code
@@ -34,9 +38,10 @@ ldscript /cpu/i386/entry32.lds
### Build our reset vector (This is where linuxBIOS is entered)
###
if USE_FALLBACK_IMAGE
- print "Use fallback!"
mainboardinit cpu/i386/reset16.inc
ldscript /cpu/i386/reset16.lds
+else
+ print "NO FALLBACK USED!"
end
if USE_NORMAL_IMAGE
@@ -59,22 +64,32 @@ ldscript /arch/i386/lib/id.lds
#### failover to another image.
####
#option MAX_REBOOT_CNT=2
-##ldscript arch/i386/lib/failover.lds USE_FALLBACK_IMAGE
+if USE_FALLBACK_IMAGE
+ ldscript /arch/i386/lib/failover.lds
+end
#
###
### Setup our mtrrs
###
mainboardinit cpu/k8/earlymtrr.inc
-#
-#
###
### Only the bootstrap cpu makes it here.
### Failover if we need to
###
#
if USE_FALLBACK_IMAGE
- mainboardinit southbridge/amd/amd8111/cmos_boot_failover.inc
+ mainboardinit ./failover.inc
+# mainboardinit southbridge/amd/amd8111/cmos_boot_failover.inc
end
+
+#
+#
+###
+### Setup the serial port
+###
+#mainboardinit superiowinbond/w83627hf/setup_serial.inc
+mainboardinit pc80/serial.inc
+mainboardinit arch/i386/lib/console.inc
#
####
#### O.k. We aren't just an intermediary anymore!
@@ -90,13 +105,7 @@ end
# mainboardinit southbridgeamd/amd8111/disable_watchdog.inc
#end
#
-###
-### Setup the serial port
-###
-#mainboardinit superiowinbond/w83627hf/setup_serial.inc
-mainboardinit pc80/serial.inc
-mainboardinit arch/i386/lib/console.inc
-if USE_FALLBACK_IMAGE mainboardinit arch/i386/lib/noop_failover.inc end
+#if USE_FALLBACK_IMAGE mainboardinit arch/i386/lib/noop_failover.inc end
#
###
### Romcc output
@@ -104,16 +113,34 @@ if USE_FALLBACK_IMAGE mainboardinit arch/i386/lib/noop_failover.inc end
#makerule ./failover.E dep "$(MAINBOARD)/failover.c" act "$(CPP) -I$(TOP)/src $(CPPFLAGS) $(MAINBOARD)/failover.c > ./failever.E"
#makerule ./failover.inc dep "./romcc ./failover.E" act "./romcc -O ./failover.E > failover.inc"
#mainboardinit .failover.inc
-makerule ./auto.E dep "$(MAINBOARD)/auto.c" act "$(CPP) -I$(TOP)/src -$(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/auto.c > ./auto.E"
-makerule ./auto.inc dep "./romcc ./auto.E" act "./romcc -O ./auto.E > auto.inc"
+
+makerule ./failover.E
+ depends "$(MAINBOARD)/failover.c"
+ action "$(CPP) -I$(TOP)/src $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/failover.c > ./failover.E"
+end
+
+makerule ./failover.inc
+ depends "./romcc ./failover.E"
+ action "./romcc -O -o failover.inc --label-prefix=failover ./failover.E"end
+
+makerule ./auto.E
+ depends "$(MAINBOARD)/auto.c"
+ action "$(CPP) -I$(TOP)/src $(ROMCCPPFLAGS) $(CPPFLAGS) $(MAINBOARD)/auto.c > ./auto.E"
+end
+makerule ./auto.inc
+ depends "./romcc ./auto.E"
+ action "./romcc -mcpu=k8 -O ./auto.E > auto.inc"
+end
+mainboardinit cpu/k8/enable_mmx_sse.inc
mainboardinit ./auto.inc
+mainboardinit cpu/k8/disable_mmx_sse.inc
#
###
### Setup RAM
###
-mainboardinit ram/ramtest.inc
-mainboardinit southbridge/amd/amd8111/smbus.inc
-mainboardinit sdram/generic_dump_spd.inc
+#mainboardinit ram/ramtest.inc
+#mainboardinit southbridge/amd/amd8111/smbus.inc
+#mainboardinit sdram/generic_dump_spd.inc
#
###
### Include the secondary Configuration files
@@ -122,9 +149,12 @@ northbridge amd/amdk8
end
southbridge amd/amd8111
end
+southbridge amd/amd8131
+end
#mainboardinit archi386/smp/secondary.inc
superio NSC/pc87360
- register "com1={1} com2={0} floppy=1 lpt=1 keyboard=1"
+ register "com1" = "{1}"
+ register "lpt" = "{1}"
end
dir /pc80
##dir /src/superio/winbond/w83627hf
diff --git a/src/mainboard/tyan/s2880/chip.h b/src/mainboard/tyan/s2880/chip.h
new file mode 100644
index 0000000000..1e13d514c7
--- /dev/null
+++ b/src/mainboard/tyan/s2880/chip.h
@@ -0,0 +1,3 @@
+struct mainboard_tyan_s2880_config {
+ int fixup_scsi;
+};
diff --git a/src/mainboard/tyan/s2880/mainboard.c b/src/mainboard/tyan/s2880/mainboard.c
index c4f7cf8015..7e037c5cd4 100644
--- a/src/mainboard/tyan/s2880/mainboard.c
+++ b/src/mainboard/tyan/s2880/mainboard.c
@@ -1,9 +1,11 @@
#include <console/console.h>
#include <device/device.h>
+#include <device/chip.h>
#include <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
-#include <part/mainboard.h>
+#include "chip.h"
+//#include <part/mainboard.h>
//#include "lsi_scsi.c"
unsigned long initial_apicid[MAX_CPUS] =
{
@@ -103,12 +105,23 @@ static void onboard_scsi_fixup(void)
*/
}
-void mainboard_fixup(void)
+
+static void
+enable(struct chip *chip, enum chip_pass pass)
{
- printk_debug("Enter mainboard_fixup\r\n");
-// onboard_device_fixup
- onboard_scsi_fixup();
- printk_debug("mainboard fixup done\r\n");
+
+ struct mainboard_tyan_s2880_config *conf =
+ (struct mainboard_tyan_s2880_config *)chip->chip_info;
+
+ switch (pass) {
+ default: break;
+ case CONF_PASS_PRE_BOOT:
+ if (conf->fixup_scsi)
+ onboard_scsi_fixup();
+ printk_debug("mainboard fixup pass %d done\r\n",
+ pass);
+ break;
+ }
}
void final_mainboard_fixup(void)
@@ -118,3 +131,8 @@ void final_mainboard_fixup(void)
#endif
}
+struct chip_control mainboard_tyan_s2880_control = {
+ enable: enable,
+ name: "Tyan s2880 mainboard "
+};
+