Kconfig!
Works on Kontron, qemu, and serengeti. 

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>

tested on abuild only. 

Acked-by: Ronald G. Minnich <rminnich@gmail.com>




git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4534 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/src/mainboard/via/Kconfig b/src/mainboard/via/Kconfig
new file mode 100644
index 0000000..ba0f11b
--- /dev/null
+++ b/src/mainboard/via/Kconfig
@@ -0,0 +1,37 @@
+choice
+        prompt "Mainboard model"
+        depends on VENDOR_VIA
+
+config BOARD_VIA_VT8454C
+        bool "vt8454c"
+        select ARCH_X86
+        select CPU_VIA_C7
+        select NORTHBRIDGE_VIA_CX700
+#       select SOUTHBRIDGE_INTEL_I82801GX
+        select SUPERIO_VIA_VT1211
+        select PIRQ_TABLE
+#	select MMCONF_SUPPORT
+	select USE_PRINTK_IN_CAR
+        help
+          Kontron 986LCD-M Series mainboards
+endchoice
+
+config MAINBOARD_DIR
+	string
+	default via/vt8454c
+	depends on BOARD_VIA_VT8454C
+
+config DCACHE_RAM_BASE
+	hex
+	default 0xffef0000
+	depends on BOARD_VIA_VT8454C
+
+config DCACHE_RAM_SIZE
+	hex
+	default 0x8000
+	depends on BOARD_VIA_VT8454C
+
+config MAINBOARD_PART_NUMBER
+	string
+	default "VT8454C"
+	depends on BOARD_VIA_VT8454C
diff --git a/src/mainboard/via/epia-cn/devicetree.cb b/src/mainboard/via/epia-cn/devicetree.cb
new file mode 100644
index 0000000..6425239
--- /dev/null
+++ b/src/mainboard/via/epia-cn/devicetree.cb
@@ -0,0 +1,61 @@
+chip northbridge/via/cn700			# Northbridge
+  device pci_domain 0 on			# PCI domain
+    device pci 0.0 on end			# AGP Bridge
+    device pci 0.1 on end			# Error Reporting
+    device pci 0.2 on end			# Host Bus Control
+    device pci 0.3 on end			# Memory Controller
+    device pci 0.4 on end			# Power Management
+    device pci 0.7 on end			# V-Link Controller
+    device pci 1.0 on end			# PCI Bridge
+    chip southbridge/via/vt8237r		# Southbridge
+      # Enable both IDE channels.
+      register "ide0_enable" = "1"
+      register "ide1_enable" = "1"
+      # Both cables are 40pin.
+      register "ide0_80pin_cable" = "0"
+      register "ide1_80pin_cable" = "0"
+      device pci f.0 on end			# IDE
+      register "fn_ctrl_lo" = "0x80"
+      register "fn_ctrl_hi" = "0x1d"
+      device pci 10.0 on end			# OHCI
+      device pci 10.1 on end			# OHCI
+      device pci 10.2 on end			# OHCI
+      device pci 10.3 on end			# OHCI
+      device pci 10.4 on end			# EHCI
+      device pci 10.5 on end			# UDCI
+      device pci 11.0 on			# Southbridge LPC
+        chip superio/via/vt1211			# Super I/O
+          device pnp 2e.0 off			# Floppy
+            io 0x60 = 0x3f0
+            irq 0x70 = 6
+            drq 0x74 = 2
+          end
+          device pnp 2e.1 on			# Parallel Port
+            io 0x60 = 0x378
+            irq 0x70 = 7
+            drq 0x74 = 3
+          end
+          device pnp 2e.2 on			# COM1
+            io 0x60 = 0x3f8
+            irq 0x70 = 4
+          end
+          device pnp 2e.3 on			# COM2
+            io 0x60 = 0x2f8
+            irq 0x70 = 3
+          end
+          device pnp 2e.b on			# HWM
+            io 0x60 = 0xec00
+          end
+        end
+      end
+      device pci 11.5 on end			# AC'97 audio
+      # device pci 11.6 off end			# AC'97 Modem
+      device pci 12.0 on end			# Ethernet
+    end
+  end
+  device apic_cluster 0 on			# APIC cluster
+    chip cpu/via/model_c7			# VIA C7
+      device apic 0 on end			# APIC
+    end
+  end
+end
diff --git a/src/mainboard/via/epia-m/devicetree.cb b/src/mainboard/via/epia-m/devicetree.cb
new file mode 100644
index 0000000..2b9abec
--- /dev/null
+++ b/src/mainboard/via/epia-m/devicetree.cb
@@ -0,0 +1,57 @@
+chip northbridge/via/vt8623
+
+	device apic_cluster 0 on
+		chip cpu/via/model_c3
+			device apic 0 on  end 
+		end
+	end
+
+	device pci_domain 0 on
+		chip southbridge/via/vt8235
+
+			device pci 10.0 on end # USB 1.1
+			device pci 10.1 on end # USB 1.1
+			device pci 10.2 on end # USB 1.1
+			device pci 10.3 on end # USB 2
+
+			device pci 11.0 on      # Southbridge
+				chip superio/via/vt1211
+					device pnp 2e.0 on	# Floppy
+						io 0x60 = 0x3f0
+						irq 0x70 = 6
+						drq 0x74 = 2
+					end
+					device pnp 2e.1 on	# Parallel Port
+						io 0x60 = 0x378
+						irq 0x70 = 7
+						drq 0x74 = 3
+					end
+					device pnp 2e.2 on	# COM1
+						io 0x60 = 0x3f8
+						irq 0x70 = 4
+					end
+					device pnp 2e.3 on	# COM2
+						io 0x60 = 0x2f8
+						irq 0x70 = 3
+					end
+					device pnp 2e.b on	# HWM
+						io 0x60 = 0xec00
+					end
+
+				end
+			end
+			
+			device pci 11.1 on  end # IDE
+			# 2-4 non existant?
+			device pci 11.5 on  end # AC97 Audio
+			device pci 11.6 off end # AC97 Modem
+			device pci 12.0 on end  # Ethernet
+		end
+#		This is on the EPIA MII, not the M.
+		chip southbridge/ricoh/rl5c476
+			register "enable_cf" = "1"
+			device pci 0a.0 on end
+			device pci 0a.1 on end	
+		end
+	end
+end
diff --git a/src/mainboard/via/epia-m700/devicetree.cb b/src/mainboard/via/epia-m700/devicetree.cb
new file mode 100644
index 0000000..008399a
--- /dev/null
+++ b/src/mainboard/via/epia-m700/devicetree.cb
@@ -0,0 +1,24 @@
+chip northbridge/via/vx800	# Northbridge
+  device pci_domain 0 on
+    device pci 0.0 on end	# AGP Bridge
+    device pci 0.1 on end	# Error Reporting
+    device pci 0.2 on end	# Host Bus Control
+    device pci 0.3 on end	# Memory Controller
+    device pci 0.4 on end	# Power Management
+    device pci 0.7 on end	# V-Link Controller
+    device pci 1.0 on end	# PCI Bridge
+    # device pci f.0 on end	# IDE/SATA
+    # device pci f.1 on end	# IDE
+    # device pci 10.0 on end	# USB 1.1
+    # device pci 10.1 on end	# USB 1.1
+    # device pci 10.2 on end	# USB 1.1
+    # device pci 10.4 on end	# USB 2.0
+    # device pci 11.0 on	# Southbridge LPC
+    # end
+  end
+  device apic_cluster 0 on	# APIC cluster
+    chip cpu/via/model_c7	# VIA C7
+      device apic 0 on end	# APIC
+    end
+  end
+end
diff --git a/src/mainboard/via/epia/devicetree.cb b/src/mainboard/via/epia/devicetree.cb
new file mode 100644
index 0000000..b75ee58
--- /dev/null
+++ b/src/mainboard/via/epia/devicetree.cb
@@ -0,0 +1,65 @@
+chip northbridge/via/vt8601
+	device pci_domain 0 on
+    		device pci 0.0 on end			# Northbridge
+#		device pci 0.1 on			# AGP bridge
+		#	chip drivers/pci/onboard	# Integrated VGA
+		#		device pci 0.0 on end
+		#		register "rom_adress" = "0xfff80000"
+		#	end
+#		end
+		chip southbridge/via/vt8231
+			register "enable_native_ide" = "0"
+			register "enable_com_ports" = "1"
+			register "enable_keyboard" = "0"
+			device pci 11.0 on              # Southbrdge
+				chip superio/winbond/w83627hf
+					device pnp 2e.0 on      #  Floppy
+					   io 0x60 = 0x3f0
+					  irq 0x70 = 6
+					  drq 0x74 = 2
+					end
+					device pnp 2e.1 off     #  Parallel Port
+					   io 0x60 = 0x378
+					  irq 0x70 = 7
+					end
+					device pnp 2e.2 on      #  Com1
+					   io 0x60 = 0x3f8
+					  irq 0x70 = 4
+					end
+					device pnp 2e.3 off     #  Com2
+					   io 0x60 = 0x2f8
+					  irq 0x70 = 3
+					end
+					device pnp 2e.5 on      #  Keyboard
+					   io 0x60 = 0x60
+					   io 0x62 = 0x64
+					  irq 0x70 = 1
+					  irq 0x72 = 12
+	      				end
+				register "com1" = "{CONFIG_TTYS0_BAUD}"
+				end
+				device pnp 2e.6 off end 	#  CIR
+				device pnp 2e.7 off end 	#  GAME_MIDI_GIPO1
+				device pnp 2e.8 off end		#  GPIO2
+				device pnp 2e.9 off end 	#  GPIO3
+				device pnp 2e.a off end		#  ACPI
+				device pnp 2e.b on		#  HW Monitor
+					io 0x60 = 0x290
+				end
+			end
+			device pci 11.1 on  end		# Ide
+			device pci 11.2 off end		# Usb port 0-1
+			device pci 11.3 off end		# Usb port 2-3
+			device pci 11.4 off end		# ACPI
+			device pci 11.5 off end		# AC97 Audio
+			device pci 11.6 on  end		# AC97 Modem
+          		device pci 12.0 on  end		# Ethernet
+        	end
+	end
+
+        device apic_cluster 0 on
+                chip cpu/via/model_c3
+                        device apic 0 on end
+                end
+        end
+end
diff --git a/src/mainboard/via/pc2500e/devicetree.cb b/src/mainboard/via/pc2500e/devicetree.cb
new file mode 100644
index 0000000..c03d000
--- /dev/null
+++ b/src/mainboard/via/pc2500e/devicetree.cb
@@ -0,0 +1,88 @@
+chip northbridge/via/cn700			# Northbridge
+  device pci_domain 0 on			# PCI domain
+    device pci 0.0 on end			# AGP Bridge
+    device pci 0.1 on end			# Error Reporting
+    device pci 0.2 on end			# Host Bus Control
+    device pci 0.3 on end			# Memory Controller
+    device pci 0.4 on end			# Power Management
+    device pci 0.7 on end			# V-Link Controller
+    device pci 1.0 on end			# PCI Bridge
+    chip southbridge/via/vt8237r		# Southbridge
+      # Enable both IDE channels.
+      register "ide0_enable" = "1"
+      register "ide1_enable" = "1"
+      # Both cables are 40pin.
+      register "ide0_80pin_cable" = "0"
+      register "ide1_80pin_cable" = "0"
+      device pci f.0 on end			# SATA
+      device pci f.1 on end			# IDE
+      register "fn_ctrl_lo" = "0x80"
+      register "fn_ctrl_hi" = "0x1d"
+      device pci 10.0 on end			# UHCI
+      device pci 10.1 on end			# UHCI
+      device pci 10.2 on end			# UHCI
+      device pci 10.3 on end			# UHCI
+      device pci 10.4 on end			# EHCI
+      device pci 10.5 on end			# UDCI
+      device pci 11.0 on			# Southbridge LPC
+        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 2e.1 on			# COM1
+            io 0x60 = 0x3f8
+            irq 0x70 = 4
+          end
+          device pnp 2e.2 off			# COM2 (N/A on this board)
+            io 0x60 = 0x2f8
+            irq 0x70 = 3
+          end
+          device pnp 2e.3 on			# Parallel port
+            io 0x60 = 0x378
+            irq 0x70 = 7
+            drq 0x74 = 3
+          end
+          device pnp 2e.4 on			# Environment controller
+            io 0x60 = 0x290
+            io 0x62 = 0x0000
+            irq 0x70 = 9
+          end
+          device pnp 2e.5 off			# PS/2 keyboard (not used)
+            io 0x60 = 0x60
+            io 0x62 = 0x64
+            irq 0x70 = 1
+          end
+          device pnp 2e.6 off			# PS/2 mouse (not used)
+            irq 0x70 = 12
+          end
+          device pnp 2e.7 on			# GPIO
+            io 0x60 = 0x0000
+            io 0x62 = 0x0800
+            io 0x64 = 0x0000
+          end
+          device pnp 2e.8 off			# MIDI port (N/A)
+            io 0x60 = 0x300
+            irq 0x70 = 10
+          end
+          device pnp 2e.9 off			# Game port (N/A)
+            io 0x60 = 0x201
+          end
+          device pnp 2e.a on			# Consumer IR
+            io 0x60 = 0x310
+            irq 0x70 = 11
+          end
+        end
+      end
+      device pci 11.5 on end			# AC'97 audio
+      # device pci 11.6 off end			# AC'97 modem (N/A)
+      device pci 12.0 on end			# Ethernet
+    end
+  end
+  device apic_cluster 0 on			# APIC cluster
+    chip cpu/via/model_c7			# VIA C7
+      device apic 0 on end			# APIC
+    end
+  end
+end
diff --git a/src/mainboard/via/vt8454c/Makefile.inc b/src/mainboard/via/vt8454c/Makefile.inc
new file mode 100644
index 0000000..d74c632
--- /dev/null
+++ b/src/mainboard/via/vt8454c/Makefile.inc
@@ -0,0 +1,64 @@
+##
+## This file is part of the coreboot project.
+## 
+## Copyright (C) 2007-2009 coresystems GmbH
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; version 2 of
+## the License.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+## MA 02110-1301 USA
+##
+
+##
+## This mainboard requires DCACHE_AS_RAM enabled. It won't work without.
+## 
+
+driver-y +=  mainboard.o
+
+obj-$(CONFIG_HAVE_MP_TABLE) += mptable.o
+obj-$(CONFIG_HAVE_PIRQ_TABLE) += irq_tables.o
+obj-$(CONFIG_HAVE_ACPI_TABLES) +=  dsdt.o
+obj-$(CONFIG_HAVE_ACPI_TABLES) +=  acpi_tables.o
+obj-$(CONFIG_HAVE_ACPI_TABLES) +=  fadt.o
+
+initobj-y += crt0.o
+# FIXME in $(top)/Makefile
+crt0-y += ../../../../src/cpu/x86/16bit/entry16.inc
+crt0-y += ../../../../src/cpu/x86/32bit/entry32.inc
+crt0-y += ../../../../src/cpu/x86/16bit/reset16.inc
+crt0-y += ../../../../src/arch/i386/lib/id.inc
+crt0-y += ../../../../src/cpu/via/car/cache_as_ram.inc
+crt0-y += auto.inc
+
+ldscript-y += ../../../../src/arch/i386/init/ldscript_fallback_cbfs.lb
+ldscript-y += ../../../../src/cpu/x86/16bit/entry16.lds
+ldscript-y += ../../../../src/cpu/x86/16bit/reset16.lds
+ldscript-y += ../../../../src/arch/i386/lib/id.lds
+ldscript-y += ../../../../src/arch/i386/lib/failover.lds
+
+ifdef POST_EVALUATION
+
+$(obj)/dsdt.c: $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl
+	iasl -p dsdt -tc $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl
+	mv dsdt.hex $@
+
+$(obj)/mainboard/$(MAINBOARDDIR)/dsdt.o: $(obj)/dsdt.c
+	$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c $< -o $@
+
+$(obj)/mainboard/$(MAINBOARDDIR)/auto.inc: $(src)/mainboard/$(MAINBOARDDIR)/auto.c $(obj)/option_table.h
+	$(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c -S  $(src)/mainboard/$(MAINBOARDDIR)/auto.c -o $@
+	perl -e 's/\.rodata/.rom.data/g' -pi $@
+	perl -e 's/\.text/.section .rom.text/g' -pi $@
+
+endif
+
diff --git a/src/mainboard/via/vt8454c/devicetree.cb b/src/mainboard/via/vt8454c/devicetree.cb
new file mode 100644
index 0000000..02f9514
--- /dev/null
+++ b/src/mainboard/via/vt8454c/devicetree.cb
@@ -0,0 +1,59 @@
+chip northbridge/via/cx700
+	device apic_cluster 0 on
+		chip cpu/via/model_c7
+			device apic 0 on end
+		end
+	end
+	device pci_domain 0 on
+		device pci 0.0 on end # AGP Bridge
+		device pci 0.1 on end # Error Reporting
+		device pci 0.2 on end # Host Bus Control
+		device pci 0.3 on end # Memory Controller
+		device pci 0.4 on end # Power Management
+		device pci 0.7 on end # V-Link Controller
+		device pci 1.0 on     # PCI Bridge
+			chip drivers/pci/onboard
+				device pci 0.0 on end
+				#register "rom_address" = "0xfffc0000" #256k image
+				register "rom_address" = "0xfff80000" #512k image
+				#register "rom_address" = "0xfff00000" #1024k image
+			end # Onboard Video
+		end # PCI Bridge
+		device pci f.0 on end # IDE/SATA
+		#device pci f.1 on end # IDE
+		device pci 10.0 on end # USB 1.1
+		device pci 10.1 on end # USB 1.1
+		device pci 10.2 on end # USB 1.1
+		device pci 10.4 on end # USB 2.0
+		device pci 11.0 on      # Southbridge LPC
+			chip superio/via/vt1211
+				device pnp 2e.0 on	# Floppy
+					io 0x60 = 0x3f0
+					irq 0x70 = 6
+					drq 0x74 = 2
+				end
+				device pnp 2e.1 on	# Parallel Port
+					io 0x60 = 0x378
+					irq 0x70 = 7
+					drq 0x74 = 3
+				end
+				device pnp 2e.2 on	# COM1
+					io 0x60 = 0x3f8
+					irq 0x70 = 4
+				end
+				device pnp 2e.3 on	# COM2
+					io 0x60 = 0x2f8
+					irq 0x70 = 3
+				end
+				device pnp 2e.b on	# HWM
+					io 0x60 = 0xec00
+				end
+			end # superio
+		end # pci 11.0
+		# 1-4 non existant
+		#device pci 11.5 on end # AC97 Audio
+		#device pci 11.6 off end # AC97 Modem
+		#device pci 12.0 on end  # Ethernet
+	end # pci domain 0
+end # cx700
+