summaryrefslogtreecommitdiff
path: root/src/devices
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2010-02-22 04:33:13 +0000
committerStefan Reinauer <stepan@openbios.org>2010-02-22 04:33:13 +0000
commitd650e9934ff8da9b9cb69e42e642c0ee6d390bf6 (patch)
tree8c6982efa868e828c21d4d427d2678e7e0804668 /src/devices
parent30b90fe4f0b31aa6676f507d3913579453942ba8 (diff)
YABEL update
- drop x86emu + old biosemu in favor of YABEL - Add YABEL_DIRECTHW to get the old biosemu behavior - add support for vesa console using YABEL - add coreboot table entry with console information - add bootsplash support (reads /bootsplash.jpg from CBFS) Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Pattrick Hueper <phueper@hueper.net> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5135 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/Kconfig123
1 files changed, 91 insertions, 32 deletions
diff --git a/src/devices/Kconfig b/src/devices/Kconfig
index 42c47bc19c..8211bf30f5 100644
--- a/src/devices/Kconfig
+++ b/src/devices/Kconfig
@@ -1,7 +1,7 @@
##
## This file is part of the coreboot project.
##
-## Copyright (C) 2007 coresystems GmbH
+## Copyright (C) 2007-2010 coresystems GmbH
## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
##
## This program is free software; you can redistribute it and/or modify
@@ -49,7 +49,7 @@ choice
depends on PCI_ROM_RUN || VGA_ROM_RUN
config PCI_OPTION_ROM_RUN_REALMODE
- prompt "Real mode"
+ prompt "Native mode"
bool
depends on ARCH_X86
help
@@ -58,36 +58,59 @@ config PCI_OPTION_ROM_RUN_REALMODE
so this is the fastest, but also the least secure option.
(only works on x86/x64 systems)
-config PCI_OPTION_ROM_RUN_X86EMU
- prompt "x86emu"
+config PCI_OPTION_ROM_RUN_YABEL
+ prompt "Secure Mode"
bool
help
If you select this option, the x86emu CPU emulator will be used to
- execute PCI option ROMs.
- When choosing this option, x86emu will pass through all hardware
- accesses to memory and IO devices to the underlying memory and IO
- addresses. While this option prevents option ROMs from doing dirty
- tricks with the CPU (such as installing SMM modules or hypervisors),
- they can still access all devices in the system.
- Choosing x86emu, option ROM execution is slower than native execution
- in real mode, but faster than the full system emulation YABEL
+ execute PCI option ROMs.
+ This option prevents option ROMs from doing dirty tricks with the
+ system (such as installing SMM modules or hypervisors), but it is also
+ significantly slower than the native option ROM initialization method.
This is the default choice for non-x86 systems.
+endchoice
-config PCI_OPTION_ROM_RUN_YABEL
- prompt "YABEL"
- bool
+# TODO: Describe better, and/or make a "choice" selection for this.
+config YABEL_DEBUG_FLAGS
+ prompt "Hex value for YABEL debug flags"
+ hex
+ default 0x0
+ depends on PCI_OPTION_ROM_RUN_YABEL
help
- If you select this option, the YABEL system emulator will be used to
- execute PCI option ROMs.
- YABEL consists of two parts: It uses x86emu for the CPU emulation and
- additionally provides a PC system emulation that filters bad device and
- memory access (such as PCI config space access to other devices than the
- initialized one).
- This option best prevents option ROMs from doing dirty tricks with the
- system (such as installing SMM modules or hypervisors), but it is also
- significantly slower than the other option ROM initialization methods.
+ Set CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
+ to select the following items to debug. 1=on 0=off. After you
+ decide what you want to debug create the binary value, convert to hex
+ and set the Option (Ex. CONFIG_YABEL_DEBUG_FLAGS = 0x31FF //Debug All).
+
+ |-DEBUG_JMP - print info about JMP and RETF opcodes from x86emu
+ ||-DEBUG_TRACE_X86EMU - print _all_ opcodes that are executed by x86emu (WARNING: this will produce a LOT of output)
+ |||-Currently unused
+ ||||-Currently unused
+ |||||-Currently unused
+ ||||||-DEBUG_PNP - Print Plug And Play access made by option rom
+ |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
+ ||||||||-DEBUG_PMM - Print messages related to POST Memory Manager (PMM)
+ |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension (VBE) functions
+ ||||||||||-DEBUG_PRINT_INT10 - let INT10 (i.e. character output) calls print messages to Debug output
+ |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
+ ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to accesse to certain areas of the virtual Memory (e.g. BDA (BIOS Data Area) or Interrupt Vectors)
+ |||||||||||||-DEBUG_MEM - Print memory access made by option rom (NOTE: this also includes accesses to fetch instructions)
+ ||||||||||||||-DEBUG_IO - Print I/O access made by option rom
+ 11000111111111 - Max Binary Value, Debug All (WARNING: - This could run for hours)
+
+ DEBUG_IO 0x0001
+ DEBUG_MEM 0x0002
+ DEBUG_CHECK_VMEM_ACCESS 0x0004
+ DEBUG_INTR 0x0008
+ DEBUG_PRINT_INT10 0x0010
+ DEBUG_VBE 0x0020
+ DEBUG_PMM 0x0040
+ DEBUG_DISK 0x0080
+ DEBUG_PNP 0x0100
+ DEBUG_TRACE_X86EMU 0x1000
+ DEBUG_JMP 0x2000
-endchoice
+ See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
config YABEL_PCI_ACCESS_OTHER_DEVICES
prompt "Allow option roms to acces other devices"
@@ -102,20 +125,56 @@ config YABEL_PCI_ACCESS_OTHER_DEVICES
config YABEL_VIRTMEM_LOCATION
prompt "Location of YABEL's virtual memory"
hex
- depends on EXPERT
+ depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
default 0x1000000
help
YABEL requires 1MB memory for its CPU emulation. This memory is
normally located at 16MB.
-# TODO: Describe better, and/or make a "choice" selection for this.
-config YABEL_DEBUG_FLAGS
- prompt "Hex value for YABEL debug flags"
- hex
- default 0x0
+config YABEL_DIRECTHW
+ prompt "Direct Hardware Access"
+ bool
depends on PCI_OPTION_ROM_RUN_YABEL
help
- See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
+ YABEL consists of two parts: It uses x86emu for the CPU emulation and
+ additionally provides a PC system emulation that filters bad device and
+ memory access (such as PCI config space access to other devices than the
+ initialized one).
+ When choosing this option, x86emu will pass through all hardware
+ accesses to memory and IO devices to the underlying memory and IO
+ addresses. While this option prevents option ROMs from doing dirty
+ tricks with the CPU (such as installing SMM modules or hypervisors),
+ they can still access all devices in the system.
+ Enable this option for a good compromise between security and speed.
+
+config BOOTSPLASH
+ prompt "Show graphical bootsplash"
+ bool
+ depends on PCI_OPTION_ROM_RUN_YABEL
+ help
+ This option shows a graphical bootsplash screen. The grapics are
+ loaded from the CBFS file bootsplash.jpg
+
+config FRAMEBUFFER_VESA_MODE
+ prompt "VESA framebuffer video mode"
+ hex
+ default 0x117
+ depends on BOOTSPLASH
+ help
+ This option sets the resolution used for the coreboot framebuffer and
+ bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
+ some day make this a "choice".
+
+config COREBOOT_KEEP_FRAMEBUFFER
+ prompt "Keep VESA framebuffer"
+ bool
+ depends on BOOTSPLASH
+ help
+ This option keeps the framebuffer mode set after coreboot finishes
+ execution. If this option is enabled, coreboot will pass a framebuffer
+ entry in its coreboot table and the payload will need a framebuffer
+ driver. If this option is disabled, coreboot will switch back to
+ text mode before handing control to a payload.
config CONSOLE_VGA_MULTI
bool