diff options
-rw-r--r-- | src/arch/i386/smp/Config.lb | 2 | ||||
-rw-r--r-- | src/mainboard/tyan/s2880/Config.lb | 68 | ||||
-rw-r--r-- | src/mainboard/tyan/s2880/chip.h | 3 | ||||
-rw-r--r-- | src/mainboard/tyan/s2880/mainboard.c | 30 |
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 " +}; + |