Index: 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);
 }
-
