Add kconfig menus for most chipset VIDEO_MB values.

VIDEO_MB is a variable that defines how many MB of RAM will be used
for onboard graphics frame buffer. It's northbridge-dependent which
values for CONFIG_MB are valid (but not board-dependent).

This patch adds choices for menuconfig to select the VIDEO_MB value for:

 - Intel 82810
 - Intel 82830
 - VIA CN400
 - VIA CN700

Note: CN400 and CN700 are based on the CX700 datasheet, not sure if they're
correct. If somebody has CN400 and CN700 datasheets, please verify.

We drop all per-board VIDEO_MB variables in per-board Kconfig files as
there's a northbridge-specific option/default now (plus the user can override
the value if needed in menuconfig).

As CONFIG_MB is chipset-specific but not board-specific (and never was), filter
it in util/compareboard/compareboard, we don't need to match those values.

Finally, put "CPU", "Northbridge", "Southbridge", "Super I/O", and
"Devices" sections into the "Chipset" menu, where NB-specific
options will appear if you select a board using a certain NB,
SB-specific options would appear in the "Southbridge" section etc.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Myles Watson <mylesgw@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4866 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/src/Kconfig b/src/Kconfig
index b53a2da..2e2bb25 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -52,11 +52,21 @@
 source src/mainboard/Kconfig
 source src/arch/i386/Kconfig
 source src/arch/ppc/Kconfig
-source src/northbridge/Kconfig
-source src/devices/Kconfig
-source src/southbridge/Kconfig
-source src/superio/Kconfig
+
+menu "Chipset"
+
+comment "CPU"
 source src/cpu/Kconfig
+comment "Northbridge"
+source src/northbridge/Kconfig
+comment "Southbridge"
+source src/southbridge/Kconfig
+comment "Super I/O"
+source src/superio/Kconfig
+comment "Devices"
+source src/devices/Kconfig
+
+endmenu
 
 config PCI_BUS_SEGN_BITS
 	int
@@ -211,9 +221,10 @@
 	bool
 	default n
 
+# TODO: Can probably be removed once all chipsets have kconfig options for it.
 config VIDEO_MB
-	default 0
 	int
+	default 0
 
 config USE_WATCHDOG_ON_BOOT
 	bool
diff --git a/src/devices/Kconfig b/src/devices/Kconfig
index 1bfd2d2..96084f9 100644
--- a/src/devices/Kconfig
+++ b/src/devices/Kconfig
@@ -18,8 +18,6 @@
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 ##
 
-menu "Devices"
-
 config VGA_BRIDGE_SETUP
 	bool "Setup bridges on path to VGA adapter"
 	default y
@@ -82,8 +80,6 @@
 	help
 	  See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
 
-endmenu
-
 config CONSOLE_VGA_MULTI
 	bool
 	default n
diff --git a/src/mainboard/asus/mew-am/Kconfig b/src/mainboard/asus/mew-am/Kconfig
index 86208ce..dcc56fa 100644
--- a/src/mainboard/asus/mew-am/Kconfig
+++ b/src/mainboard/asus/mew-am/Kconfig
@@ -50,8 +50,3 @@
 	default 8
 	depends on BOARD_ASUS_MEW_AM
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_ASUS_MEW_AM
-
diff --git a/src/mainboard/asus/mew-vm/Kconfig b/src/mainboard/asus/mew-vm/Kconfig
index d1dde20..693fa7b 100644
--- a/src/mainboard/asus/mew-vm/Kconfig
+++ b/src/mainboard/asus/mew-vm/Kconfig
@@ -45,8 +45,3 @@
 	default 11
 	depends on BOARD_ASUS_MEW_VM
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_ASUS_MEW_VM
-
diff --git a/src/mainboard/bcom/winnetp680/Kconfig b/src/mainboard/bcom/winnetp680/Kconfig
index 05db9de..0dce8af 100644
--- a/src/mainboard/bcom/winnetp680/Kconfig
+++ b/src/mainboard/bcom/winnetp680/Kconfig
@@ -25,11 +25,6 @@
 	default 10
 	depends on BOARD_BCOM_WINNETP680
 
-config VIDEO_MB
-	int
-	default 32
-	depends on BOARD_BCOM_WINNETP680
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/mainboard/hp/e_vectra_p2706t/Kconfig b/src/mainboard/hp/e_vectra_p2706t/Kconfig
index 909532c..74b101a 100644
--- a/src/mainboard/hp/e_vectra_p2706t/Kconfig
+++ b/src/mainboard/hp/e_vectra_p2706t/Kconfig
@@ -53,8 +53,3 @@
 	default 3
 	depends on BOARD_HP_E_VECTRA_P2706T
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_HP_E_VECTRA_P2706T
-
diff --git a/src/mainboard/jetway/j7f24/Kconfig b/src/mainboard/jetway/j7f24/Kconfig
index ac0403f..6890f1a 100644
--- a/src/mainboard/jetway/j7f24/Kconfig
+++ b/src/mainboard/jetway/j7f24/Kconfig
@@ -29,11 +29,6 @@
 	default "J7f24"
 	depends on BOARD_JETWAY_J7F24
 
-config VIDEO_MB
-	int
-	default 32
-	depends on BOARD_JETWAY_J7F24
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/mainboard/kontron/kt690/Kconfig b/src/mainboard/kontron/kt690/Kconfig
index f857153..8fe55b8 100644
--- a/src/mainboard/kontron/kt690/Kconfig
+++ b/src/mainboard/kontron/kt690/Kconfig
@@ -44,11 +44,6 @@
 	default 0x0
 	depends on BOARD_KONTRON_KT690
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_KONTRON_KT690
-
 config LB_CKS_RANGE_END
 	int
 	default 122
diff --git a/src/mainboard/mitac/6513wu/Kconfig b/src/mainboard/mitac/6513wu/Kconfig
index e4e6866..95a0924 100644
--- a/src/mainboard/mitac/6513wu/Kconfig
+++ b/src/mainboard/mitac/6513wu/Kconfig
@@ -50,8 +50,3 @@
 	default 8
 	depends on BOARD_MITAC_6513WU
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_MITAC_6513WU
-
diff --git a/src/mainboard/msi/ms6178/Kconfig b/src/mainboard/msi/ms6178/Kconfig
index 5e417a4..7da2d77 100644
--- a/src/mainboard/msi/ms6178/Kconfig
+++ b/src/mainboard/msi/ms6178/Kconfig
@@ -49,8 +49,3 @@
 	default 4
 	depends on BOARD_MSI_MS_6178
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_MSI_MS_6178
-
diff --git a/src/mainboard/nec/powermate2000/Kconfig b/src/mainboard/nec/powermate2000/Kconfig
index 785c49b..175c695 100644
--- a/src/mainboard/nec/powermate2000/Kconfig
+++ b/src/mainboard/nec/powermate2000/Kconfig
@@ -50,8 +50,3 @@
 	default 5
 	depends on BOARD_NEC_POWERMATE_2000
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_NEC_POWERMATE_2000
-
diff --git a/src/mainboard/rca/rm4100/Kconfig b/src/mainboard/rca/rm4100/Kconfig
index 5768330..e3381a8 100644
--- a/src/mainboard/rca/rm4100/Kconfig
+++ b/src/mainboard/rca/rm4100/Kconfig
@@ -30,8 +30,3 @@
 	default 7
 	depends on BOARD_RCA_RM4100
 
-config VIDEO_MB
-	int
-	default 0
-	depends on BOARD_RCA_RM4100
-
diff --git a/src/mainboard/technexion/tim5690/Kconfig b/src/mainboard/technexion/tim5690/Kconfig
index f14a67f..0dda275 100644
--- a/src/mainboard/technexion/tim5690/Kconfig
+++ b/src/mainboard/technexion/tim5690/Kconfig
@@ -129,11 +129,6 @@
 	default 0x4000
 	depends on BOARD_TECHNEXION_TIM5690
 
-config VIDEO_MB
-	int
-	default 1
-	depends on BOARD_TECHNEXION_TIM5690
-
 config HAVE_OPTION_TABLE
 	bool
 	default n
diff --git a/src/mainboard/thomson/ip1000/Kconfig b/src/mainboard/thomson/ip1000/Kconfig
index 3e1c75a..3a412162 100644
--- a/src/mainboard/thomson/ip1000/Kconfig
+++ b/src/mainboard/thomson/ip1000/Kconfig
@@ -29,8 +29,3 @@
 	default 7
 	depends on BOARD_THOMSON_IP1000
 
-config VIDEO_MB
-	int
-	default 0
-	depends on BOARD_THOMSON_IP1000
-
diff --git a/src/mainboard/via/epia-cn/Kconfig b/src/mainboard/via/epia-cn/Kconfig
index 832b7e7..284e425 100644
--- a/src/mainboard/via/epia-cn/Kconfig
+++ b/src/mainboard/via/epia-cn/Kconfig
@@ -28,11 +28,6 @@
 	default "EPIA-CN"
 	depends on BOARD_VIA_EPIA_CN
 
-config VIDEO_MB
-	int
-	default 32
-	depends on BOARD_VIA_EPIA_CN
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/mainboard/via/epia-m700/Kconfig b/src/mainboard/via/epia-m700/Kconfig
index 4328e6e..f711987 100644
--- a/src/mainboard/via/epia-m700/Kconfig
+++ b/src/mainboard/via/epia-m700/Kconfig
@@ -27,11 +27,6 @@
 	default "EPIA-M700"
 	depends on BOARD_VIA_EPIA_M700
 
-config VIDEO_MB
-	int
-	default 64
-	depends on BOARD_VIA_EPIA_M700
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/mainboard/via/epia-n/Kconfig b/src/mainboard/via/epia-n/Kconfig
index 13446cc..229655a 100644
--- a/src/mainboard/via/epia-n/Kconfig
+++ b/src/mainboard/via/epia-n/Kconfig
@@ -31,11 +31,6 @@
 	default "EPIA-N"
 	depends on BOARD_VIA_EPIA_N
 
-config VIDEO_MB
-	int
-	default 32
-	depends on BOARD_VIA_EPIA_N
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/mainboard/via/pc2500e/Kconfig b/src/mainboard/via/pc2500e/Kconfig
index a7d1eeb..4f9a2ba 100644
--- a/src/mainboard/via/pc2500e/Kconfig
+++ b/src/mainboard/via/pc2500e/Kconfig
@@ -22,11 +22,6 @@
 	default "pc2500e"
 	depends on BOARD_VIA_PC2500E
 
-config VIDEO_MB
-	int
-	default 32
-	depends on BOARD_VIA_PC2500E
-
 config RAMBASE
 	hex
 	default 0x4000
diff --git a/src/northbridge/intel/i82810/Kconfig b/src/northbridge/intel/i82810/Kconfig
index d55ed25..dc939b4 100644
--- a/src/northbridge/intel/i82810/Kconfig
+++ b/src/northbridge/intel/i82810/Kconfig
@@ -22,3 +22,24 @@
 	bool
 	select HAVE_HIGH_TABLES
 
+choice
+	prompt "Onboard graphics"
+	default I810_VIDEO_MB_1MB
+	depends on NORTHBRIDGE_INTEL_I82810
+
+config I810_VIDEO_MB_OFF
+	bool "Disabled, 0KB"
+config I810_VIDEO_MB_512KB
+	bool "Enabled, 512KB"
+config I810_VIDEO_MB_1MB
+	bool "Enabled, 1MB"
+
+endchoice
+
+config VIDEO_MB
+	int
+	default 0   if I810_VIDEO_MB_OFF
+	default 512 if I810_VIDEO_MB_512KB
+	default 1   if I810_VIDEO_MB_1MB
+	depends on NORTHBRIDGE_INTEL_I82810
+
diff --git a/src/northbridge/intel/i82830/Kconfig b/src/northbridge/intel/i82830/Kconfig
index 3c57a2e..21072a1 100644
--- a/src/northbridge/intel/i82830/Kconfig
+++ b/src/northbridge/intel/i82830/Kconfig
@@ -2,3 +2,27 @@
 	bool
 	select HAVE_HIGH_TABLES
 
+choice
+	prompt "Onboard graphics"
+	default I830_VIDEO_MB_8MB
+	depends on NORTHBRIDGE_INTEL_I82830
+
+config I830_VIDEO_MB_OFF
+	bool "Disabled, 0KB"
+config I830_VIDEO_MB_512KB
+	bool "Enabled, 512KB"
+config I830_VIDEO_MB_1MB
+	bool "Enabled, 1MB"
+config I830_VIDEO_MB_8MB
+	bool "Enabled, 8MB"
+
+endchoice
+
+config VIDEO_MB
+	int
+	default 0   if I830_VIDEO_MB_OFF
+	default 512 if I830_VIDEO_MB_512KB
+	default 1   if I830_VIDEO_MB_1MB
+	default 8   if I830_VIDEO_MB_8MB
+	depends on NORTHBRIDGE_INTEL_I82830
+
diff --git a/src/northbridge/via/cn400/Kconfig b/src/northbridge/via/cn400/Kconfig
index c210d93..67703c9 100644
--- a/src/northbridge/via/cn400/Kconfig
+++ b/src/northbridge/via/cn400/Kconfig
@@ -17,3 +17,36 @@
 	default n
 	depends on NORTHBRIDGE_VIA_CN400
 
+# TODO: Values are from the CX700 datasheet, not sure if this matches CN400.
+# TODO: What should be the per-chipset default value here?
+choice
+	prompt "Onboard graphics"
+	default CN400_VIDEO_MB_32MB
+	depends on NORTHBRIDGE_VIA_CN400
+
+# TODO: Disabling onboard graphics is not yet supported in the source code.
+config CN400_VIDEO_MB_OFF
+	bool "Disabled, 0KB"
+config CN400_VIDEO_MB_8MB
+	bool "Enabled, 8MB"
+config CN400_VIDEO_MB_16MB
+	bool "Enabled, 16MB"
+config CN400_VIDEO_MB_32MB
+	bool "Enabled, 32MB"
+config CN400_VIDEO_MB_64MB
+	bool "Enabled, 64MB"
+config CN400_VIDEO_MB_128MB
+	bool "Enabled, 128MB"
+
+endchoice
+
+config VIDEO_MB
+	int
+	default 0   if CN400_VIDEO_MB_OFF
+	default 8   if CN400_VIDEO_MB_8MB
+	default 16  if CN400_VIDEO_MB_16MB
+	default 32  if CN400_VIDEO_MB_32MB
+	default 64  if CN400_VIDEO_MB_64MB
+	default 128 if CN400_VIDEO_MB_128MB
+	depends on NORTHBRIDGE_VIA_CN400
+
diff --git a/src/northbridge/via/cn700/Kconfig b/src/northbridge/via/cn700/Kconfig
index 09c1c96..8795d77 100644
--- a/src/northbridge/via/cn700/Kconfig
+++ b/src/northbridge/via/cn700/Kconfig
@@ -17,3 +17,37 @@
 	bool
 	default n
 	depends on NORTHBRIDGE_VIA_CN700
+
+# TODO: Values are from the CX700 datasheet, not sure if this matches CN700.
+# TODO: What should be the per-chipset default value here?
+choice
+	prompt "Onboard graphics"
+	default CN700_VIDEO_MB_32MB
+	depends on NORTHBRIDGE_VIA_CN700
+
+# TODO: Disabling onboard graphics is not yet supported in the code.
+config CN700_VIDEO_MB_OFF
+	bool "Disabled, 0KB"
+config CN700_VIDEO_MB_8MB
+	bool "Enabled, 8MB"
+config CN700_VIDEO_MB_16MB
+	bool "Enabled, 16MB"
+config CN700_VIDEO_MB_32MB
+	bool "Enabled, 32MB"
+config CN700_VIDEO_MB_64MB
+	bool "Enabled, 64MB"
+config CN700_VIDEO_MB_128MB
+	bool "Enabled, 128MB"
+
+endchoice
+
+config VIDEO_MB
+	int
+	default 0   if CN700_VIDEO_MB_OFF
+	default 8   if CN700_VIDEO_MB_8MB
+	default 16  if CN700_VIDEO_MB_16MB
+	default 32  if CN700_VIDEO_MB_32MB
+	default 64  if CN700_VIDEO_MB_64MB
+	default 128 if CN700_VIDEO_MB_128MB
+	depends on NORTHBRIDGE_VIA_CN700
+
diff --git a/util/compareboard/compareboard b/util/compareboard/compareboard
index 292e55f..8023954 100755
--- a/util/compareboard/compareboard
+++ b/util/compareboard/compareboard
@@ -44,6 +44,7 @@
 	-e "/^CONFIG_ROM_IMAGE_SIZE / d" \
 	-e "/^CONFIG_STACK_SIZE / d" \
 	-e "/^CONFIG_GDB_STUB / d" \
+	-e "/^CONFIG_VIDEO_MB / d" \
 	$A/old > $A/old.filtered
 sed \
 	-e "/^CONFIG_VENDOR_/ d" \
@@ -67,6 +68,7 @@
 	-e "/^CONFIG_ROM_IMAGE_SIZE / d" \
 	-e "/^CONFIG_STACK_SIZE / d" \
 	-e "/^CONFIG_GDB_STUB / d" \
+	-e "/^CONFIG_VIDEO_MB / d" \
 	$A/new > $A/new.filtered
 
 normalize $A/old.filtered > $A/old.normalized