rendered paste bodyIndex: src/mainboard/msi/ms7260/Config.lb
===================================================================
--- src/mainboard/msi/ms7260/Config.lb (Revision 3845)
+++ src/mainboard/msi/ms7260/Config.lb (Arbeitskopie)
@@ -181,47 +181,49 @@
chip southbridge/nvidia/mcp55 # Southbridge
device pci 0.0 on end # HT
device pci 1.0 on # LPC
- chip superio/winbond/w83627ehg # Super I/O
- device pnp 4e.0 on # Floppy
+ chip superio/ite/it8716f # Super I/O
+ device pnp 2e.0 on # Floppy
io 0x60 = 0x3f0
irq 0x70 = 6
drq 0x74 = 2
end
- device pnp 4e.1 on # Parallel port
- io 0x60 = 0x378
- irq 0x70 = 7
- end
- device pnp 4e.2 on # Com1
+ device pnp 2e.1 on # Com1
io 0x60 = 0x3f8
irq 0x70 = 4
end
- device pnp 4e.3 on # Com2 / IrDA
+ device pnp 2e.2 on # Com2 / IrDA
io 0x60 = 0x2f8
irq 0x70 = 3
end
- device pnp 4e.5 on # PS/2 keyboard
+ device pnp 2e.3 on # Parallel port
+ io 0x60 = 0x378
+ irq 0x70 = 7
+ end
+ device pnp 2e.4 on # Environment controller
+ io 0x60 = 0x290
+ end
+ device pnp 2e.5 on # PS/2 keyboard
io 0x60 = 0x60
io 0x62 = 0x64
- irq 0x70 = 1 # PS/2 keyboard IRQ
- irq 0x72 = 12 # PS/2 mouse IRQ
+ irq 0x70 = 1
end
- device pnp 4e.6 off # Serial flash interface
- # io 0x62 = 0x100
+ device pnp 2e.6 on # PS/2 mouse
+ irq 0x70 = 12
end
- device pnp 4e.7 off # GPIO1/6, game port, MIDI port
- # io 0x60 = 0x220 # Datasheet: 0x201
- # io 0x62 = 0x300 # Datasheet: 0x330
- # irq 0x70 = 9
+ device pnp 2e.7 on # GPIO
+ io 0x60 = 0x0008 # TODO: Check if this works!
end
- device pnp 4e.8 off # WDTO#, PLED
+ device pnp 2e.8 on # MIDI
+ io 0x60 = 0x300 # TODO: Check if this works!
+ irq 0x70 = 10
end
- device pnp 4e.9 off # GPIO2/3/4/5, SUSLED
+ device pnp 2e.9 on # Game port
+ io 0x60 = 0x201 # TODO: Check if this works!
end
- device pnp 4e.a off # ACPI
+ device pnp 2e.a on # Consumer IR
+ io 0x60 = 0x310 # TODO: Check if this works!
+ irq 0x70 = 11
end
- device pnp 4e.b on # HWM (for lm-sensors)
- io 0x60 = 0xa10
- end
end
end
device pci 1.1 on # SM 0
@@ -283,15 +285,15 @@
device pci 4.0 on end # IDE
device pci 5.0 on end # SATA 0
device pci 5.1 on end # SATA 1
- device pci 5.2 off end # SATA 2 (N/A on this board)
+ device pci 5.2 on end # SATA 2 (TODO: available?)
device pci 6.0 on end # PCI
device pci 6.1 on end # AZA (HD Audio)
device pci 8.0 on end # NIC
- device pci 9.0 off end # NIC (N/A on this board)
- device pci a.0 off end # PCI E 5 (N/A on this board?)
- device pci b.0 on end # PCI E 4
- device pci c.0 on end # PCI E 3
- device pci d.0 on end # PCI E 2
+ device pci 9.0 on end # NIC (TODO: available?)
+ # device pci a.0 on end # PCI E 5 (TODO: available?)
+ # device pci b.0 on end # PCI E 4 (TODO: available?)
+ # device pci c.0 on end # PCI E 3 (TODO: available?)
+ # device pci d.0 on end # PCI E 2 (TODO: available?)
device pci e.0 on end # PCI E 1
device pci f.0 on end # PCI E 0
register "ide0_enable" = "1"
Index: src/mainboard/msi/ms7260/mptable.c
===================================================================
--- src/mainboard/msi/ms7260/mptable.c (Revision 3845)
+++ src/mainboard/msi/ms7260/mptable.c (Arbeitskopie)
@@ -36,8 +36,8 @@
void *smp_write_config_table(void *v)
{
static const char sig[4] = "PCMP";
- static const char oem[8] = "MSI ";
- static const char productid[12] = "MS-7260 ";
+ static const char oem[8] = "ASUS ";
+ static const char productid[12] = "M2N-SLI Delu";
struct mp_config_table *mc;
unsigned int sbdn;
int i, j;
Index: src/mainboard/msi/ms7260/Options.lb
===================================================================
--- src/mainboard/msi/ms7260/Options.lb (Revision 3845)
+++ src/mainboard/msi/ms7260/Options.lb (Arbeitskopie)
@@ -166,10 +166,10 @@
default MEM_TRAIN_SEQ = 2
default WAIT_BEFORE_CPUS_INIT = 0
default CONFIG_IOAPIC = 1
-default MAINBOARD_PART_NUMBER = "K9N Neo (MS-7260)"
-default MAINBOARD_VENDOR = "MSI"
-default MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID = 0x1462
-default MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID = 0x7260
+default MAINBOARD_PART_NUMBER = "ASUS M2N SLI Deluxe"
+default MAINBOARD_VENDOR = "ASUS"
+default MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID = 0x1462 # FIXME
+default MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID = 0x7260 # FIXME
default ROM_IMAGE_SIZE = 65536
default STACK_SIZE = 0x2000
default HEAP_SIZE = 0x8000
Index: src/mainboard/msi/ms7260/mainboard.c
===================================================================
--- src/mainboard/msi/ms7260/mainboard.c (Revision 3845)
+++ src/mainboard/msi/ms7260/mainboard.c (Arbeitskopie)
@@ -23,6 +23,6 @@
#if CONFIG_CHIP_NAME == 1
struct chip_operations mainboard_msi_ms7260_ops = {
- CHIP_NAME("MSI K9N Neo (MS-7260) Mainboard")
+ CHIP_NAME("ASUS M2N-SLI Deluxe Mainboard")
};
#endif
Index: src/mainboard/msi/ms7260/cache_as_ram_auto.c
===================================================================
--- src/mainboard/msi/ms7260/cache_as_ram_auto.c (Revision 3845)
+++ src/mainboard/msi/ms7260/cache_as_ram_auto.c (Arbeitskopie)
@@ -78,8 +78,8 @@
#include "cpu/x86/lapic/boot_cpu.c"
#include "northbridge/amd/amdk8/reset_test.c"
-#include "superio/winbond/w83627ehg/w83627ehg_early_serial.c"
-#include "superio/winbond/w83627ehg/w83627ehg_early_init.c"
+#include "superio/ite/it8716f/it8716f_early_serial.c"
+#include "superio/ite/it8716f/it8716f_early_init.c"
#if USE_FAILOVER_IMAGE == 0
@@ -91,8 +91,7 @@
#include "cpu/amd/mtrr/amd_earlymtrr.c"
#include "northbridge/amd/amdk8/setup_resource_map.c"
-/* Yes, on the MSI K9N Neo (MS-7260) the Super I/O is at 0x4e! */
-#define SERIAL_DEV PNP_DEV(0x4e, W83627EHG_SP1)
+#define SERIAL_DEV PNP_DEV(0x2e, IT8716F_SP1)
#include "southbridge/nvidia/mcp55/mcp55_early_ctrl.c"
@@ -244,12 +243,9 @@
if (bist == 0)
bsp_apicid = init_cpus(cpu_init_detectedx, sysinfo);
- /* FIXME: This should be part of the Super I/O code/config. */
- pnp_enter_ext_func_mode(SERIAL_DEV);
- /* Switch CLKSEL to 24MHz (default is 48MHz). Needed for serial! */
- pnp_write_config(SERIAL_DEV, 0x24, 0);
- w83627ehg_enable_dev(SERIAL_DEV, TTYS0_BASE);
- pnp_exit_ext_func_mode(SERIAL_DEV);
+ it8716f_24mhz_clkin(SERIAL_DEV);
+ it8716f_kill_watchdog(SERIAL_DEV);
+ it8716f_enable_serial(SERIAL_DEV, TTYS0_BASE);
setup_mb_resource_map();
uart_init();
Index: src/superio/ite/it8716f/it8716f_early_init.c
===================================================================
--- src/superio/ite/it8716f/it8716f_early_init.c (Revision 3845)
+++ src/superio/ite/it8716f/it8716f_early_init.c (Arbeitskopie)
@@ -22,17 +22,57 @@
#include <arch/romcc_io.h>
#include "it8716f.h"
+#define IT8716F_CONFIG_REG_CC 0x02 /* Configure Control (write-only). */
+#define IT8716F_CONFIG_REG_LDN 0x07 /* Logical Device Number */
+#define IT8716F_CONFIG_REG_CLOCKSEL 0x23 /* Clock Selection */
+#define IT8716F_CONFIG_REG_WATCHDOG 0x72 /* Watchdog control */
+
+static void it8716f_sio_write(u8 ldn, u8 index, u8 value)
+{
+ outb(IT8716F_CONFIG_REG_LDN, SIO_BASE);
+ outb(ldn, SIO_DATA);
+ outb(index, SIO_BASE);
+ outb(value, SIO_DATA);
+}
+
+static void it8716f_enter_conf(device_t dev)
+{
+ u16 port = dev >> 8;
+ outb(0x87, port);
+ outb(0x01, port);
+ outb(0x55, port);
+ (port == 0x4e) ? outb(0xaa, port) : outb(0x55, port);
+}
+
+static void it8716f_exit_conf(void)
+{
+ it8716f_sio_write(0x00, IT8716F_CONFIG_REG_CC, 0x02);
+}
+
+static void it8716f_24mhz_clkin(device_t dev)
+{
+ it8716f_enter_conf(dev);
+ it8716f_sio_write(0x00, IT8716F_CONFIG_REG_CLOCKSEL, 0x1);
+ it8716f_exit_conf();
+}
+
+static void it8716f_kill_watchdog(device_t dev)
+{
+ it8716f_enter_conf(dev);
+ it8716f_sio_write(0x07, IT8716F_CONFIG_REG_WATCHDOG, 0x00);
+ it8716f_exit_conf();
+}
+
static void it8716f_disable_dev(device_t dev)
{
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);
}
-static void it8716f_enable_dev(device_t dev, unsigned iobase)
+static void it8716f_enable_dev(device_t dev, u16 iobase)
{
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);
pnp_set_iobase(dev, PNP_IDX_IO0, iobase);
pnp_set_enable(dev, 1);
}
-