[meta-virtualization] [PATCH 11/14] xen: break out firmware bits

Nathan Rossi nathan.rossi at xilinx.com
Mon Feb 16 00:34:33 PST 2015


From: Chris Patterson <cjp256 at gmail.com>

Added recipes for various xen firmware components:
- ipxe
- seabios
- vgabios

Signed-off-by: Chris Patterson <cjp256 at gmail.com>
Signed-off-by: Eric Chanudet <eric.chanudet at gmail.com>
Signed-off-by: Nathan Rossi <nathan.rossi at xilinx.com>
---
 recipes-extended/ipxe/ipxe_git.bb             |  31 ++++++++
 recipes-extended/seabios/seabios/defconfig    | 102 ++++++++++++++++++++++++++
 recipes-extended/seabios/seabios/hostcc.patch |  21 ++++++
 recipes-extended/seabios/seabios_1.7.5.bb     |  46 ++++++++++++
 recipes-extended/vgabios/vgabios_0.7a.bb      |  31 ++++++++
 5 files changed, 231 insertions(+)
 create mode 100644 recipes-extended/ipxe/ipxe_git.bb
 create mode 100644 recipes-extended/seabios/seabios/defconfig
 create mode 100644 recipes-extended/seabios/seabios/hostcc.patch
 create mode 100644 recipes-extended/seabios/seabios_1.7.5.bb
 create mode 100644 recipes-extended/vgabios/vgabios_0.7a.bb

diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
new file mode 100644
index 0000000..6dc492e
--- /dev/null
+++ b/recipes-extended/ipxe/ipxe_git.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Open source network boot firmware"
+HOMEPAGE = "http://ipxe.org"
+LICENSE = "GPLv2"
+DEPENDS = "binutils-native perl-native syslinux mtools-native"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRCREV = "8c43891db4eb131d019360ccfb619f235b17eb58"
+PV = "gitr${SRCPV}"
+PR = "r0"
+
+SRC_URI = "git://git.ipxe.org/ipxe.git;protocol=git"
+
+FILES_${PN} = "/usr/share/firmware/*.rom"
+
+EXTRA_OEMAKE = "NO_WERROR=1"
+#PARALLEL_MAKE=""
+
+S = "${WORKDIR}/git/src"
+
+do_configure() {
+   sed -i s#^ISOLINUX_BIN[\ \\t]*=.*#ISOLINUX_BIN\ =\ ${STAGING_DIR_TARGET}/usr/lib/syslinux/isolinux.bin# arch/i386/Makefile
+}
+
+do_compile() {
+   oe_runmake
+}
+
+do_install() {
+    install -d ${D}/usr/share/firmware
+    install ${S}/bin/*.rom ${D}/usr/share/firmware/
+}
diff --git a/recipes-extended/seabios/seabios/defconfig b/recipes-extended/seabios/seabios/defconfig
new file mode 100644
index 0000000..d4474ba
--- /dev/null
+++ b/recipes-extended/seabios/seabios/defconfig
@@ -0,0 +1,102 @@
+#
+# Automatically generated make config: don't edit
+# SeaBIOS Configuration
+# Wed Sep 18 14:08:45 2013
+#
+
+#
+# General Features
+#
+# CONFIG_COREBOOT is not set
+CONFIG_QEMU=y
+# CONFIG_CSM is not set
+CONFIG_QEMU_HARDWARE=y
+CONFIG_XEN=y
+CONFIG_THREADS=y
+# CONFIG_THREAD_OPTIONROMS is not set
+CONFIG_RELOCATE_INIT=y
+CONFIG_BOOTMENU=y
+# CONFIG_BOOTSPLASH is not set
+CONFIG_BOOTORDER=y
+# CONFIG_ENTRY_EXTRASTACK is not set
+
+#
+# Hardware support
+#
+CONFIG_ATA=y
+# CONFIG_ATA_DMA is not set
+# CONFIG_ATA_PIO32 is not set
+CONFIG_AHCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_SCSI=y
+CONFIG_ESP_SCSI=y
+CONFIG_LSI_SCSI=y
+CONFIG_MEGASAS=y
+CONFIG_FLOPPY=y
+CONFIG_PS2PORT=y
+CONFIG_USB=y
+CONFIG_USB_UHCI=y
+CONFIG_USB_OHCI=y
+CONFIG_USB_EHCI=y
+CONFIG_USB_MSC=y
+CONFIG_USB_UAS=y
+CONFIG_USB_HUB=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_MOUSE=y
+CONFIG_SERIAL=y
+CONFIG_LPT=y
+# CONFIG_USE_SMM is not set
+CONFIG_MTRR_INIT=y
+CONFIG_PMTIMER=y
+
+#
+# BIOS interfaces
+#
+CONFIG_DRIVES=y
+CONFIG_CDROM_BOOT=y
+CONFIG_CDROM_EMU=y
+CONFIG_PCIBIOS=y
+CONFIG_APMBIOS=y
+CONFIG_PNPBIOS=y
+CONFIG_OPTIONROMS=y
+CONFIG_OPTIONROMS_DEPLOYED=y
+CONFIG_PMM=y
+CONFIG_BOOT=y
+CONFIG_KEYBOARD=y
+CONFIG_KBD_CALL_INT15_4F=y
+CONFIG_MOUSE=y
+CONFIG_S3_RESUME=y
+CONFIG_VGAHOOKS=y
+# CONFIG_DISABLE_A20 is not set
+
+#
+# BIOS Tables
+#
+# CONFIG_PIRTABLE is not set
+# CONFIG_MPTABLE is not set
+# CONFIG_SMBIOS is not set
+# CONFIG_ACPI is not set
+
+#
+# VGA ROM
+#
+# CONFIG_NO_VGABIOS is not set
+# CONFIG_VGA_STANDARD_VGA is not set
+# CONFIG_VGA_CIRRUS is not set
+# CONFIG_VGA_BOCHS is not set
+# CONFIG_VGA_GEODEGX2 is not set
+# CONFIG_VGA_GEODELX is not set
+# CONFIG_VGA_XENGFX is not set
+# CONFIG_BUILD_VGABIOS is not set
+# CONFIG_VGA_VBE is not set
+# CONFIG_VGA_PCI is not set
+# CONFIG_OVERRIDE_PCI_ID is not set
+# CONFIG_VGA_VID=0x5853
+# CONFIG_VGA_DID=0xC147
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=2
+# CONFIG_DEBUG_SERIAL is not set
+CONFIG_DEBUG_IO=y
diff --git a/recipes-extended/seabios/seabios/hostcc.patch b/recipes-extended/seabios/seabios/hostcc.patch
new file mode 100644
index 0000000..f665e1a
--- /dev/null
+++ b/recipes-extended/seabios/seabios/hostcc.patch
@@ -0,0 +1,21 @@
+diff -ur a/Makefile b/Makefile
+--- a/Makefile	2015-02-02 22:02:58.651041951 -0500
++++ b/Makefile	2015-02-02 23:08:13.884514003 -0500
+@@ -8,7 +8,7 @@
+ OUT=out/
+ 
+ # Common command definitions
+-export HOSTCC             := $(CC)
++export HOSTCC             ?= $(CC)
+ export CONFIG_SHELL       := sh
+ export KCONFIG_AUTOHEADER := autoconf.h
+ export KCONFIG_CONFIG     := $(CURDIR)/.config
+@@ -22,7 +22,7 @@
+ OBJDUMP=$(CROSS_PREFIX)objdump
+ STRIP=$(CROSS_PREFIX)strip
+ PYTHON=python
+-CPP=cpp
++CPP=$(CROSS_PREFIX)cpp
+ IASL:=iasl
+ LD32BIT_FLAG:=-melf_i386
+ 
diff --git a/recipes-extended/seabios/seabios_1.7.5.bb b/recipes-extended/seabios/seabios_1.7.5.bb
new file mode 100644
index 0000000..5ff0004
--- /dev/null
+++ b/recipes-extended/seabios/seabios_1.7.5.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "SeaBIOS"
+HOMEPAGE = "http://www.coreboot.org/SeaBIOS"
+LICENSE = "LGPLv3"
+SECTION = "firmware"
+
+SRC_URI = " \
+    http://code.coreboot.org/p/seabios/downloads/get/${PN}-${PV}.tar.gz \
+    file://hostcc.patch \
+    file://defconfig \
+    "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504         \
+                    file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6  \
+                    "
+
+SRC_URI[md5sum] = "3f1e17485ca327b245ae5938d9aa02d9"
+SRC_URI[sha256sum] = "858d9eda4ad91efa1c45a5a401d560ef9ca8dd172f03b0a106f06661c252dc51"
+
+PR = "r0"
+
+FILES_${PN} = "/usr/share/firmware"
+
+DEPENDS = "util-linux-native file-native bison-native flex-native gettext-native iasl-native python-native"
+
+TUNE_CCARGS = ""
+PARALLEL_MAKE = ""
+export HOSTCC="${BUILD_CC}"
+export CROSS_PREFIX="${TARGET_PREFIX}"
+
+do_configure() {
+    install -m 0644 "${WORKDIR}/defconfig" .config
+    oe_runmake oldconfig
+}
+
+do_compile() {
+    unset CPP
+    unset CPPFLAGS
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake
+    install -d ${D}/usr/share/firmware
+    install -m 0644 out/bios.bin ${D}/usr/share/firmware/
+}
+
diff --git a/recipes-extended/vgabios/vgabios_0.7a.bb b/recipes-extended/vgabios/vgabios_0.7a.bb
new file mode 100644
index 0000000..6addeff
--- /dev/null
+++ b/recipes-extended/vgabios/vgabios_0.7a.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Plex86/Bochs LGPL VGABios"
+HOMEPAGE = "http://www.nongnu.org/vgabios/"
+LICENSE = "LGPLv2.1"
+SECTION = "firmware"
+DEPENDS = ""
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
+DEPENDS = ""
+
+SRC_URI =  "http://savannah.gnu.org/download/vgabios/${PN}-${PV}.tgz"
+
+SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900"
+SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865"
+
+PR = "r0"
+
+FILES_${PN} = "/usr/share/firmware/${PN}-${PV}*.bin"
+FILES_${PN}-dbg = "/usr/share/firmware/${PN}-${PV}*.debug.bin"
+
+S = "${WORKDIR}/${PN}-${PV}"
+
+do_configure() {
+    echo "Skip do_configure"
+}
+
+do_install() {
+    install -d ${D}/usr/share/firmware
+    install -m 0644 VGABIOS-lgpl-latest.bin ${D}/usr/share/firmware/${PN}-${PV}.bin
+    install -m 0644 VGABIOS-lgpl-latest.cirrus.bin ${D}/usr/share/firmware/${PN}-${PV}.cirrus.bin
+}
+
-- 
2.1.1



More information about the meta-virtualization mailing list