From e6804955c48f735074a6c56788bc9f65a412bbe2 Mon Sep 17 00:00:00 2001 From: Myles Watson Date: Fri, 28 Aug 2009 14:36:12 +0000 Subject: [PATCH] Add Kconfig support for PCI option ROMS. Signed-off-by: Myles Watson Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4609 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- Makefile | 1 + src/devices/Kconfig | 52 ++++++++++++++++----------- src/devices/Makefile.inc | 4 +-- util/x86emu/Makefile.inc | 5 ++- util/x86emu/yabel/Makefile.inc | 8 +++++ util/x86emu/yabel/biosemu.c | 2 -- util/x86emu/yabel/compat/Makefile.inc | 1 + 7 files changed, 47 insertions(+), 26 deletions(-) create mode 100644 util/x86emu/yabel/Makefile.inc create mode 100644 util/x86emu/yabel/compat/Makefile.inc diff --git a/Makefile b/Makefile index 76ff1538fd..eefa9c2a7a 100644 --- a/Makefile +++ b/Makefile @@ -215,6 +215,7 @@ printall: OBJS := $(patsubst %,$(obj)/%,$(TARGETS-y)) INCLUDES := -I$(top)/src -I$(top)/src/include -I$(obj) -I$(top)/src/arch/$(ARCHDIR-y)/include INCLUDES += -I$(shell $(CC) -print-search-dirs | head -n 1 | cut -d' ' -f2)include +INCLUDES += -I$(top)/util/x86emu/include INCLUDES += -include $(obj)/build.h try-run= $(shell set -e; \ diff --git a/src/devices/Kconfig b/src/devices/Kconfig index 2b58f91751..37ff9b927c 100644 --- a/src/devices/Kconfig +++ b/src/devices/Kconfig @@ -21,35 +21,45 @@ menu "Devices" config VGA_ROM_RUN - bool + bool "Run VGA Option ROMs" help - Execute PCI/AGP option ROMs if available. This is required to - enable PCI/AGP VGA plugin cards. + Execute VGA option ROMs if found. This is required to enable PCI/AGP + VGA plugin cards. + +config PCI_ROM_RUN + bool "Run non-VGA Option ROMs" + help + Execute non-VGA PCI option ROMs if found. choice - prompt "Execute PCI option ROMs" - default PCI_OPTION_ROM_RUN_REALMODE - help - Execute PCI/AGP option ROMs if available. You can choose to - execute PCI option ROMs natively (32bit x86 system required), - in an emulator (x86emu), or ignore option ROM execution. + prompt "Option ROM Execution" + default PCI_OPTION_ROM_RUN_REALMODE + depends on PCI_ROM_RUN || VGA_ROM_RUN + help + You can choose to execute PCI option ROMs natively (32bit x86 system + required) or in an emulator (x86emu or YABEL). -config PCI_OPTION_ROM_RUN_REALMODE - prompt "Run VGA ROMs" - bool - select VGA_ROM_RUN - help - Execute PCI/AGP option ROMs if available. This is required to - enable PCI/AGP VGA plugin cards. + config PCI_OPTION_ROM_RUN_REALMODE + prompt "Real mode" + bool -config NO_RUN - prompt "Do NOT run VGA ROMs" - bool - help - Do not execute PCI/AGP option ROMs. + config PCI_OPTION_ROM_RUN_YABEL + prompt "YABEL" + bool + config PCI_OPTION_ROM_RUN_X86EMU + prompt "X86EMU" + bool endchoice +config YABEL_DEBUG_FLAGS + prompt "Hex value for debug flags" + hex + default 0x0 + depends on PCI_OPTION_ROM_RUN_YABEL + help + See debug.h for values 0 is no debug output, 0x31ff is _verbose_. + endmenu config PCI_64BIT_PREF_MEM diff --git a/src/devices/Makefile.inc b/src/devices/Makefile.inc index 9ef4e69517..0c6677a57b 100644 --- a/src/devices/Makefile.inc +++ b/src/devices/Makefile.inc @@ -12,8 +12,8 @@ obj-y += pci_ops.o obj-y += smbus_ops.o ifeq ($(CONFIG_PCI_ROM_RUN),y) -obj-$(CONFIG_PCI_ROM_RUN) += pci_rom.o -subdirs-$(CONFIG_PCI_ROM_RUN) += ../../util/x86emu +obj-y += pci_rom.o +subdirs-y += ../../util/x86emu else obj-$(CONFIG_VGA_ROM_RUN) += pci_rom.o subdirs-$(CONFIG_VGA_ROM_RUN) += ../../util/x86emu diff --git a/util/x86emu/Makefile.inc b/util/x86emu/Makefile.inc index 52a69b17a8..b5c3eb4b7c 100644 --- a/util/x86emu/Makefile.inc +++ b/util/x86emu/Makefile.inc @@ -19,9 +19,12 @@ ## subdirs-$(CONFIG_PCI_OPTION_ROM_RUN_X86EMU) += x86emu -obj-$(CONFIG_PCI_OPTION_ROM_RUN_X86EMU) += biosemu.c +obj-$(CONFIG_PCI_OPTION_ROM_RUN_X86EMU) += biosemu.o subdirs-$(CONFIG_PCI_OPTION_ROM_RUN_X86EMU) += pcbios obj-$(CONFIG_PCI_OPTION_ROM_RUN_REALMODE) += x86.o obj-$(CONFIG_PCI_OPTION_ROM_RUN_REALMODE) += x86_asm.o obj-$(CONFIG_PCI_OPTION_ROM_RUN_REALMODE) += x86_interrupts.o + +subdirs-$(CONFIG_PCI_OPTION_ROM_RUN_YABEL) += x86emu +subdirs-$(CONFIG_PCI_OPTION_ROM_RUN_YABEL) += yabel diff --git a/util/x86emu/yabel/Makefile.inc b/util/x86emu/yabel/Makefile.inc new file mode 100644 index 0000000000..fc6a8a0a9f --- /dev/null +++ b/util/x86emu/yabel/Makefile.inc @@ -0,0 +1,8 @@ +obj-y += biosemu.o +obj-y += debug.o +obj-y += device.o +obj-y += interrupt.o +obj-y += io.o +obj-y += mem.o +obj-y += pmm.o +subdirs-y += compat diff --git a/util/x86emu/yabel/biosemu.c b/util/x86emu/yabel/biosemu.c index 74772e8642..04c440d0a6 100644 --- a/util/x86emu/yabel/biosemu.c +++ b/util/x86emu/yabel/biosemu.c @@ -56,8 +56,6 @@ static X86EMU_pioFuncs my_pio_funcs = { /* interrupt function override array (see biosemu.h) */ yabel_handleIntFunc yabel_intFuncArray[256]; -void dump(u8 * addr, u32 len); - /* main entry into YABEL biosemu, arguments are: * *biosmem = pointer to virtual memory * biosmem_size = size of the virtual memory diff --git a/util/x86emu/yabel/compat/Makefile.inc b/util/x86emu/yabel/compat/Makefile.inc new file mode 100644 index 0000000000..00080f5406 --- /dev/null +++ b/util/x86emu/yabel/compat/Makefile.inc @@ -0,0 +1 @@ +obj-y += functions.o