Author: uwe Date: 2009-10-07 18:15:40 +0200 (Wed, 07 Oct 2009) New Revision: 4734
Modified: trunk/coreboot-v2/src/Kconfig trunk/coreboot-v2/src/arch/i386/Kconfig trunk/coreboot-v2/src/arch/ppc/Kconfig trunk/coreboot-v2/src/console/Kconfig trunk/coreboot-v2/src/devices/Kconfig trunk/coreboot-v2/src/mainboard/Kconfig Log: Various Kconfig fixes and improvements:
- Add helps texts to multiple user-visible Kconfig options.
- Improve some menu and option names.
- PAYLOAD_NONE should come before PAYLOAD_ELF, so that you scroll down (instead of up) when changing "no payload" to "ELF payload" (more intuitive, IMHO).
- s/cbfs/cbfstool/.
- Add some TODO items where needed.
- Put GDB_STUB in a "Debugging" menu, no options should be top-level. There'll be more debug options later, I'm pretty sure.
- Start converting help texts which are not user-visible to #-comments.
- Re-order some options for more intuitive menus.
- Set ARCH_X86 and ARCH_POWERPC to "default n", each boards selects them.
- "Maximum reboot count" should proabably not be user-selectable, or at most if CONFIG_EXPERT (yet to be added) is enabled. It does definately not need its own "Misc options" menu.
- Set PCI_ROM_RUN and VGA_ROM_RUN to "default y", most users will want to run option ROMs.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de Acked-by: Uwe Hermann uwe@hermann-uwe.de
Modified: trunk/coreboot-v2/src/Kconfig =================================================================== --- trunk/coreboot-v2/src/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -30,10 +30,15 @@ menu "General setup"
config LOCALVERSION - string "Local version - append to coreboot release" + string "Local version string" help Append an extra string to the end of the coreboot version.
+ This can be useful if, for instance, you want to append the + respective board's hostname or some other identifying string to + the coreboot version number, so that you can easily distinguish + boot logs of different boards from each other. + endmenu
source src/mainboard/Kconfig @@ -225,10 +230,10 @@
# TODO # menu "Drivers" -# +# # endmenu
-menu "Generated System Tables" +menu "System tables"
config HAVE_LOW_TABLES bool @@ -239,7 +244,7 @@ default y
config MULTIBOOT - bool "Add Multiboot tables (for grub2)" + bool "Generate Multiboot tables (for GRUB2)" default n
config HAVE_ACPI_TABLES @@ -258,16 +263,22 @@
menu "Payload"
-config COMPRESSED_PAYLOAD_LZMA - bool "Use LZMA compression for payloads" - default yes - choice - prompt "Payload type" + prompt "Add a payload" default PAYLOAD_NONE
+config PAYLOAD_NONE + bool "None" + help + Select this option if you want to create an "empty" coreboot + ROM image for a certain mainboard, i.e. a coreboot ROM image + which does not yet contain a payload. + + For such an image to be useful, you have to use 'cbfstool' + to add a payload to the ROM image later. + config PAYLOAD_ELF - bool "An ELF executable payload file" + bool "An ELF executable payload" help Select this option if you have a payload image (an ELF file) which coreboot should run as soon as the basic hardware @@ -275,16 +286,7 @@
You will be able to specify the location and file name of the payload image later. -config PAYLOAD_NONE - bool "No payload" - help - Select this option if you want to create an "empty" coreboot - ROM image for a certain mainboard, i.e. a coreboot ROM image - which does not yet contain a payload.
- For such an image to be useful, you have to use the 'cbfs' tool - to add a payload to the ROM image later. - endchoice
config FALLBACK_PAYLOAD_FILE @@ -294,6 +296,15 @@ help The path and filename of the ELF executable file to use as payload.
+# TODO: Defined if no payload? Breaks build? +config COMPRESSED_PAYLOAD_LZMA + bool "Use LZMA compression for payloads" + default y + depends on PAYLOAD_ELF + help + In order to reduce the size payloads take up in the ROM chip + coreboot can compress them using the LZMA algorithm. + endmenu
menu "VGA BIOS" @@ -319,11 +330,20 @@ depends on VGA_BIOS default "1106,3230" help - The ID that would associate your VGA BIOS to your video card. - (PCI VendorID, PCI Device ID) + The comma-separated PCI vendor and device ID that would associate + your VGA BIOS to your video card.
+ Example: 1106,3230 + + In the above example 1106 is the PCI vendor ID (in hex, but without + the "0x" prefix) and 3230 specifies the PCI device ID of the + video card (also in hex, without "0x" prefix). + endmenu
+menu "Debugging" + +# TODO: Better help text and detailed instructions. config GDB_STUB bool "GDB debugging support" default y @@ -331,3 +351,5 @@ If enabled, you will be able to set breakpoints for gdb debugging. See src/arch/i386/lib/c_start.S for details.
+endmenu +
Modified: trunk/coreboot-v2/src/arch/i386/Kconfig =================================================================== --- trunk/coreboot-v2/src/arch/i386/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/arch/i386/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -1,23 +1,22 @@ +# This option is used to set the architecture of a mainboard to X86. +# It is usually set in mainboard/*/Kconfig. config ARCH_X86 bool - help - This option is used to set the architecture of a mainboard. - It is usually set in mainboard/*/Kconfig. + default n
+# This is an SMP option. It relates to starting up APs. +# It is usually set in mainboard/*/Kconfig. +# TODO: Improve description. config AP_IN_SIPI_WAIT bool default n depends on ARCH_X86 - help - This is an SMP option. It relates to starting up APs. - It is usually set in mainboard/*/Kconfig.
+# This is the name of the respective architecture subdirectory in arch/. config ARCH string default i386 depends on ARCH_X86 - help - This is the name of the respective subdirectory in arch/.
config ROMBASE hex @@ -58,11 +57,9 @@ hex default 0x8000
-menu "Misc options" - +# Maximum reboot count +# TODO: Improve description. config MAX_REBOOT_CNT - int "Maximum reboot count" + int default 3
-endmenu -
Modified: trunk/coreboot-v2/src/arch/ppc/Kconfig =================================================================== --- trunk/coreboot-v2/src/arch/ppc/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/arch/ppc/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -1,13 +1,12 @@ +# This option is used to set the architecture of a mainboard to PowerPC. +# It is usually set in mainboard/*/Kconfig. config ARCH_POWERPC bool - help - This option is used to set the architecture of a mainboard. - It is usually set in mainboard/*/Kconfig. + default n
+# This is the name of the respective architecture subdirectory in arch/. config ARCH string default ppc depends on ARCH_POWERPC - help - This is the name of the respective subdirectory in arch/.
Modified: trunk/coreboot-v2/src/console/Kconfig =================================================================== --- trunk/coreboot-v2/src/console/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/console/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -1,53 +1,96 @@ menu "Console options"
+# TODO: Rename to SERIAL_CONSOLE once Kconfig transition is complete. config CONSOLE_SERIAL8250 - #TODO Rename to SERIAL_CONSOLE once Kconfig transition is complete. - bool "See output on the serial port console" + bool "Enable serial port console output" default y + help + Send coreboot debug output to a serial port console.
-config SERIAL_POST - bool "See POST output on the serial port console" - default n - +# TODO: COM1, COM2 etc. config TTYS0_BASE hex "I/O base for the serial port" depends on CONSOLE_SERIAL8250 default 0x3f8
config SERIAL_SET_SPEED - bool "Override the serial console BAUD rate" + bool "Override the serial port BAUD rate" default y depends on CONSOLE_SERIAL8250
config TTYS0_BAUD - int "Serial console BAUD rate" + int "Serial port BAUD rate" depends on SERIAL_SET_SPEED default 115200
+# TODO: Allow user-friendly selection of settings other than 8n1. config TTYS0_LCS int default 3 depends on CONSOLE_SERIAL8250
+config SERIAL_POST + bool "Enable POST output on the serial port console" + depends on CONSOLE_SERIAL8250 + default n + help + If enabled, coreboot will additionally print POST codes (which are + usually displayed using a so-called "POST card" ISA/PCI/PCI-E + device) on the serial console. + +# TODO: FIX DEPENDENCY HERE config USBDEBUG_DIRECT - bool "USB debug dongle support. Not supported on all chipsets." + bool "USB 2.0 EHCI debug dongle support" default n - # TODO: FIX DEPENDENCY HERE + help + This option allows you to use a so-called USB EHCI Debug device + to retrieve the coreboot debug messages (instead, or in addition + to, a serial port).
+ This feature is NOT supported on all chipsets in coreboot! + + It also requires a USB2 controller which supports the EHCI + Debug Port capability. Controllers which are known to work: + + * 10b9:5239 ALi Corporation USB 2.0 (USB PCI card) + * 8086:24cd Intel ICH4/ICH4-M + * 8086:24dd Intel ICH5 + * 8086:265c Intel ICH6 + * 8086:268c Intel 631xESB/632xESB/3100 + * 8086:27cc Intel ICH7 + * 8086:2836 Intel ICH8 + * 8086:283a Intel ICH8 + * 8086:293a Intel ICH9 + * 10de:0088 NVIDIA MCP2A + * 10de:005b NVIDIA CK804 + * 10de:026e NVIDIA MCP51 + * 10de:036d NVIDIA MCP55 + * 10de:03f2 NVIDIA MCP61 + * 1002:4386 ATI/AMD SB600 + * 1106:3104 VIA VX800 + + See http://www.coreboot.org/EHCI_Debug_Port for an up-to-date list. + config CONSOLE_VGA - bool "Use VGA console, once initialized." + bool "Use VGA console once initialized" default n
+# TODO: Deps? +# TODO: Improve description. config CONSOLE_VGA_ONBOARD_AT_FIRST - bool "Use onboard VGA as primary" + bool "Use onboard VGA as primary video device" default n help If not selected, the last adapter found will be used.
+# TODO: User-friendly "choice" selection. +# TODO: Add help text. config MAXIMUM_CONSOLE_LOGLEVEL int "Maximum console loglevel" default 9
+# TODO: User-friendly "choice" selection. +# TODO: Add help text. config DEFAULT_CONSOLE_LOGLEVEL int "Default console loglevel" default 9
Modified: trunk/coreboot-v2/src/devices/Kconfig =================================================================== --- trunk/coreboot-v2/src/devices/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/devices/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -24,43 +24,58 @@ bool "Setup bridges on path to VGA adapter" default y help - Allow bridges to set up legacy decoding ranges for VGA. Don't disable + Allow bridges to set up legacy decoding ranges for VGA. Don't disable this unless you're sure you don't want the briges setup for VGA.
+# TODO: Explain differences (if any) for onboard cards. config VGA_ROM_RUN - bool "Run VGA Option ROMs" + bool "Run VGA option ROMs" + default y help - Execute VGA option ROMs if found. This is required to enable PCI/AGP - VGA plugin cards. + Execute VGA option ROMs, if found. This is required to enable + PCI/AGP/PCI-E video cards.
config PCI_ROM_RUN - bool "Run non-VGA Option ROMs" + bool "Run non-VGA option ROMs" + default y help - Execute non-VGA PCI option ROMs if found. + Execute non-VGA PCI option ROMs, if found.
+ Examples include IDE/SATA controller option ROMs and option ROMs + for network cards (NICs). + +# TODO: Describe YABEL vs. x86emu differences in more detail. choice - prompt "Option ROM Execution" - default PCI_OPTION_ROM_RUN_REALMODE + prompt "Option ROM execution type" + default PCI_OPTION_ROM_RUN_REALMODE depends on PCI_ROM_RUN || VGA_ROM_RUN + +config PCI_OPTION_ROM_RUN_REALMODE + prompt "Real mode" + bool help - You can choose to execute PCI option ROMs natively (32bit x86 system - required) or in an emulator (x86emu or YABEL). + If you select this option, PCI option ROMs will be executed + natively on the hardware (a 32bit x86 system is required).
- config PCI_OPTION_ROM_RUN_REALMODE - prompt "Real mode" - bool +config PCI_OPTION_ROM_RUN_YABEL + prompt "YABEL" + bool + help + If you select this option, the YABEL BIOS emulator will be used to + execute PCI option ROMs.
- config PCI_OPTION_ROM_RUN_YABEL - prompt "YABEL" - bool +config PCI_OPTION_ROM_RUN_X86EMU + prompt "x86emu" + bool + help + If you select this option, the x86emu BIOS emulator will be used to + execute PCI option ROMs.
- config PCI_OPTION_ROM_RUN_X86EMU - prompt "X86EMU" - bool endchoice
+# TODO: Describe better, and/or make a "choice" selection for this. config YABEL_DEBUG_FLAGS - prompt "Hex value for debug flags" + prompt "Hex value for YABEL debug flags" hex default 0x0 depends on PCI_OPTION_ROM_RUN_YABEL
Modified: trunk/coreboot-v2/src/mainboard/Kconfig =================================================================== --- trunk/coreboot-v2/src/mainboard/Kconfig 2009-10-07 16:00:40 UTC (rev 4733) +++ trunk/coreboot-v2/src/mainboard/Kconfig 2009-10-07 16:15:40 UTC (rev 4734) @@ -370,10 +370,16 @@ source "src/mainboard/tyan/Kconfig" source "src/mainboard/via/Kconfig"
+# TODO: No help text possible for choice fields? choice prompt "ROM chip size" default COREBOOT_ROMSIZE_KB_256 + help + Select the size of the ROM chip you intend to flash coreboot on.
+ The build system will take care of creating a coreboot.rom file + of the matching size. + config COREBOOT_ROMSIZE_KB_128 bool "128 KB" help @@ -406,6 +412,7 @@
endchoice
+# Map the config names to an integer (KB). config COREBOOT_ROMSIZE_KB int default 128 if COREBOOT_ROMSIZE_KB_128 @@ -414,9 +421,8 @@ default 1024 if COREBOOT_ROMSIZE_KB_1024 default 2048 if COREBOOT_ROMSIZE_KB_2048 default 4096 if COREBOOT_ROMSIZE_KB_4096 - help - Map the config names to an integer.
+# Map the config names to a hex value (bytes). config ROM_SIZE hex default 0x20000 if COREBOOT_ROMSIZE_KB_128