Author: jcrouse Date: 2007-12-06 17:18:18 +0100 (Thu, 06 Dec 2007) New Revision: 77
Modified: buildrom-devel/Config.in buildrom-devel/config/payloads/payloads.conf buildrom-devel/config/platforms/Config.in buildrom-devel/config/platforms/platforms.conf buildrom-devel/packages/linuxbios/linuxbios.inc Log: This patch adds support for QEMU to buildrom, for both v2 and v3. It also allows you to build QEMU from sources with the patches.
Signed-off-by: Myles Watson myles@pel.cs.byu.edu Acked-by: Jordan Crouse jordan.crouse@amd.com
Modified: buildrom-devel/Config.in =================================================================== --- buildrom-devel/Config.in 2007-12-05 23:27:08 UTC (rev 76) +++ buildrom-devel/Config.in 2007-12-06 16:18:18 UTC (rev 77) @@ -43,6 +43,23 @@
menu "LinuxBIOS configuration"
+config LINUXBIOS_V3 + bool "Use LinuxBIOSv3" + depends ADVANCED + default n + help + Use the v3 tree. LinuxBIOSv3 doesn't support all platforms yet. + +config LINUXBIOS_V3_LGDT_PATCH + bool "Avoid an error in stage0_i586 with some compilers" + depends LINUXBIOS_V3 + default n + help + Say 'y' here to use the patch from the mailing list to replace + "data32 lgdt %cs:gdtptr" with + "movl $gdtptr" + "%ebx lgdt %cs:(%bx)" + config USE_LZMA bool "Enable LZMA compression" depends !PAYLOAD_OFW
Modified: buildrom-devel/config/payloads/payloads.conf =================================================================== --- buildrom-devel/config/payloads/payloads.conf 2007-12-05 23:27:08 UTC (rev 76) +++ buildrom-devel/config/payloads/payloads.conf 2007-12-06 16:18:18 UTC (rev 77) @@ -29,6 +29,7 @@
# Add LZMA if it is enabled HOSTTOOLS-$(CONFIG_USE_LZMA) += lzma +HOSTTOOLS-$(CONFIG_BUILD_QEMU) += qemu
# Sanity check
Modified: buildrom-devel/config/platforms/Config.in =================================================================== --- buildrom-devel/config/platforms/Config.in 2007-12-05 23:27:08 UTC (rev 76) +++ buildrom-devel/config/platforms/Config.in 2007-12-06 16:18:18 UTC (rev 77) @@ -21,6 +21,9 @@ config VENDOR_PC_ENGINES bool "PC Engines"
+config VENDOR_QEMU + bool "QEMU Emulator" + config VENDOR_SUPERMICRO bool "Supermicro"
@@ -84,6 +87,11 @@ select PLATFORM select PLATFORM_SUPPORT_64BIT
+config PLATFORM_QEMU-i386 + bool "QEMU Emulator" + depends VENDOR_QEMU + select PLATFORM + config PLATFORM_SERENGETI_CHEETAH bool "AMD Serengeti-Cheetah" depends VENDOR_AMD @@ -98,6 +106,22 @@
endchoice
+config BUILD_QEMU + bool "Build QEMU with patches for LinuxBIOS" + depends PLATFORM_QEMU-i386 + default n + help + Say 'y' here to build a patched version of QEMU to work with + LinuxBIOS. This downloads the correct version and patches it + it even builds it if you specify the QEMU_CC correctly. + +config QEMU_CC + string "Compiler to use when building QEMU" + depends BUILD_QEMU + default "gcc32" + help + Set this string to point to your compiler (GCC_VER <=3.2) + config SIMNOW bool "Build for the AMD SimNow (TM) emulator" depends PLATFORM_SERENGETI_CHEETAH || PLATFORM_SERENGETI_CHEETAH_64
Modified: buildrom-devel/config/platforms/platforms.conf =================================================================== --- buildrom-devel/config/platforms/platforms.conf 2007-12-05 23:27:08 UTC (rev 76) +++ buildrom-devel/config/platforms/platforms.conf 2007-12-06 16:18:18 UTC (rev 77) @@ -18,5 +18,6 @@ PLATFORM-$(CONFIG_PLATFORM_SERENGETI_CHEETAH) = serengeti_cheetah.conf PLATFORM-$(CONFIG_PLATFORM_SERENGETI_CHEETAH_64) = serengeti_cheetah-x86_64.conf PLATFORM-$(CONFIG_PLATFORM_GA_2761GXDK) = ga-2761gxdk.conf +PLATFORM-$(CONFIG_PLATFORM_QEMU-i386) = qemu.conf
include $(CONFIG_DIR)/platforms/$(PLATFORM-y)
Modified: buildrom-devel/packages/linuxbios/linuxbios.inc =================================================================== --- buildrom-devel/packages/linuxbios/linuxbios.inc 2007-12-05 23:27:08 UTC (rev 76) +++ buildrom-devel/packages/linuxbios/linuxbios.inc 2007-12-06 16:18:18 UTC (rev 77) @@ -7,8 +7,14 @@ ifeq ($(LINUXBIOS_BOARD),) $(error No LinuxBIOS board specified) endif -ifeq ($(LINUXBIOS_CONFIG),) -$(error No LinuxBIOS config specified) +ifeq ($(CONFIG_LINUXBIOS_V3),y) + ifeq ($(LINUXBIOS_V3_CONFIG),) + $(error No LinuxBIOSv3 config specified) + endif +else + ifeq ($(LINUXBIOS_CONFIG),) + $(error No LinuxBIOS config specified) + endif endif ifeq ($(LINUXBIOS_TDIR),) $(error No LinuxBIOS TDIR specified) @@ -29,7 +35,12 @@ LINUXBIOS_TARGET_DIR=$(LINUXBIOS_SRC_DIR)/targets/ LINUXBIOS_TARGET_NAME=$(LINUXBIOS_VENDOR)/$(LINUXBIOS_BOARD) LINUXBIOS_CONFIG_NAME=$(LINUXBIOS_TARGET_NAME)/$(LINUXBIOS_CONFIG) + +ifeq ($(CONFIG_LINUXBIOS_V3),y) +LINUXBIOS_BUILD_DIR=$(LINUXBIOS_SRC_DIR) +else LINUXBIOS_BUILD_DIR=$(LINUXBIOS_TARGET_DIR)/$(LINUXBIOS_TARGET_NAME)/$(LINUXBIOS_TDIR) +endif
LINUXBIOS_STAMP_DIR=$(LINUXBIOS_DIR)/stamps LINUXBIOS_LOG_DIR=$(LINUXBIOS_DIR)/logs @@ -68,10 +79,17 @@ @ touch $@
$(LINUXBIOS_STAMP_DIR)/.configured: $(LINUXBIOS_STAMP_DIR)/.patched +ifeq ($(CONFIG_LINUXBIOS_V3),y) + @ echo "Configuring v3..." + @ cp $(LINUXBIOS_V3_CONFIG) $(LINUXBIOS_SRC_DIR)/.config + @ make -C $(LINUXBIOS_SRC_DIR) oldconfig > $(LINUXBIOS_CONFIG_LOG) 2>&1 + @ touch $@ +else @ echo "Building target..." @( cd $(LINUXBIOS_TARGET_DIR); \ ./buildtarget $(LINUXBIOS_CONFIG_NAME) > $(LINUXBIOS_CONFIG_LOG) 2>&1) @ touch $@ +endif
$(LINUXBIOS_STAMP_DIR) $(LINUXBIOS_LOG_DIR): @ mkdir -p $@