bootimg/grub-efi.bbclass: allow using a different class for EFI images
authorStefan Stanacar <stefanx.stanacar@intel.com>
Thu, 6 Mar 2014 17:57:25 +0000 (19:57 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 11 Mar 2014 16:30:14 +0000 (09:30 -0700)
Abstract away some names so one can select using EFI_PROVIDER a different
class than grub-efi for populating live images, basically allowing the use
of a different bootloader than grub-efi.

(From OE-Core rev: 14e5de3b8f4d5902d0ac683ff45fb878e88b40ef)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/boot-directdisk.bbclass
meta/classes/bootimg.bbclass
meta/classes/grub-efi.bbclass

index 42b3415..88e5c52 100644 (file)
@@ -32,7 +32,8 @@ BOOTDD_VOLUME_ID   ?= "boot"
 BOOTDD_EXTRA_SPACE ?= "16384"
 
 EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
-EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}"
+EFI_PROVIDER ?= "grub-efi"
+EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}"
 
 # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not
 # contain "efi". This way legacy is supported by default if neither is
@@ -87,7 +88,7 @@ build_boot_dd() {
                syslinux_hddimg_populate $HDDDIR
        fi
        if [ "${EFI}" = "1" ]; then
-               grubefi_hddimg_populate $HDDDIR
+               efi_hddimg_populate $HDDDIR
        fi
 
        if [ "${IS_VMDK}" = "true" ]; then
@@ -154,7 +155,7 @@ python do_bootdirectdisk() {
     if d.getVar("PCBIOS", True) == "1":
         bb.build.exec_func('build_syslinux_cfg', d)
     if d.getVar("EFI", True) == "1":
-        bb.build.exec_func('build_grub_cfg', d)
+        bb.build.exec_func('build_efi_cfg', d)
     bb.build.exec_func('build_boot_dd', d)
 }
 
index c370bd6..b13eef9 100644 (file)
@@ -42,7 +42,8 @@ BOOTIMG_VOLUME_ID   ?= "boot"
 BOOTIMG_EXTRA_SPACE ?= "512"
 
 EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
-EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}"
+EFI_PROVIDER ?= "grub-efi"
+EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}"
 
 # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not
 # contain "efi". This way legacy is supported by default if neither is
@@ -89,7 +90,7 @@ build_iso() {
                syslinux_iso_populate ${ISODIR}
        fi
        if [ "${EFI}" = "1" ]; then
-               grubefi_iso_populate ${ISODIR}
+               efi_iso_populate ${ISODIR}
                build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img
        fi
 
@@ -206,7 +207,7 @@ build_hddimg() {
                        syslinux_hddimg_populate ${HDDDIR}
                fi
                if [ "${EFI}" = "1" ]; then
-                       grubefi_hddimg_populate ${HDDDIR}
+                       efi_hddimg_populate ${HDDDIR}
                fi
 
                build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
@@ -227,7 +228,7 @@ python do_bootimg() {
     if d.getVar("PCBIOS", True) == "1":
         bb.build.exec_func('build_syslinux_cfg', d)
     if d.getVar("EFI", True) == "1":
-        bb.build.exec_func('build_grub_cfg', d)
+        bb.build.exec_func('build_efi_cfg', d)
     bb.build.exec_func('build_hddimg', d)
     bb.build.exec_func('build_iso', d)
 }
index 71bd00f..5c80c17 100644 (file)
@@ -26,7 +26,7 @@ GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
 
 EFIDIR = "/EFI/BOOT"
 
-grubefi_populate() {
+efi_populate() {
        # DEST must be the root of the image so that EFIDIR is not
        # nested under a top level directory.
        DEST=$1
@@ -42,9 +42,9 @@ grubefi_populate() {
        install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR}
 }
 
-grubefi_iso_populate() {
+efi_iso_populate() {
        iso_dir=$1
-       grubefi_populate $iso_dir
+       efi_populate $iso_dir
        # Build a EFI directory to create efi.img
        mkdir -p ${EFIIMGDIR}/${EFIDIR}
        cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
@@ -55,11 +55,11 @@ grubefi_iso_populate() {
        fi
 }
 
-grubefi_hddimg_populate() {
-       grubefi_populate $1
+efi_hddimg_populate() {
+       efi_populate $1
 }
 
-python build_grub_cfg() {
+python build_efi_cfg() {
     import sys
 
     workdir = d.getVar('WORKDIR', True)