recipes-bsp: add gnu-efi recipe

gnu-efi is required by gummiboot.
Imported from meta-intel, PR dropped, no new version available.

(From OE-Core rev: fdb65c569db2b55023f9d1d72959e4e7d187a1d8)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
recipes-bsp: Add gummiboot recipe

gummiboot is a simple UEFI boot manager.

Recipe imported from meta-intel with these changes:
 - drop PR and update configure options
 - upgraded to latest version

A couple of notes:
 - If you wish you can install the gummiboot package on the target and
use 'gummiboot install' to add the payload to the ESP (see gummiboot --help,
just make sure the ESP partition has the boot flag on as gummiboot won't accept it
otherwise). However the point of this recipe is to be used by bootimg.bbclass and
generate images with gummiboot instead of grub-efi.
 - You need a kernel which has CONFIG_EFI_STUB=y at least
 - The default linux-yocto kernel config does not enable that, easiest way
to enable is to build with KERNEL_FEATURES_append = " cfg/efi-ext" in local.conf

(From OE-Core rev: 8f95d0598c31fff76e2a58fecb6c96197121a044)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
bootimg/grub-efi.bbclass: allow using a different class for EFI images

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: Matt Fleming <matt.fleming@intel.com>
classes: Add gummiboot class

Adds a gummiboot class similar to grub-efi class and makes the necessary
changes so it can be used for live/hddimg images as well.

One can set EFI_PROVIDER = "gummiboot" in local.conf to use gummiboot instead of grub-efi.
Gummiboot requires some kernel options that are not enabled by default, so one has to build
with KERNEL_FEATURES_append = " cfg/efi-ext".

The install scripts have been updated too, keeping the old behaviour around,
but accounting for the new boot loader config files (if they exist).
It can be argued that the installer and bootimg are a bit wierd and not necessarily correct,
but I wanted to have the exact same behviour with gummiboot.
With the default EFI_PROVIDER = "grub-efi" nothing changes, everthing should be just as before.

I've tested live boot, install and normal boot on:
    - FRI2
    - genericx86-64 on NUC
with:
  EFI_PROVIDER = "gummiboot"
  KERNEL_FEATURES_append = " cfg/efi-ext"
in local.conf.

(From OE-Core rev: b457e40fc69cc6503dc566f16495f03606e5333b)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
recipes-bsp: Add efilinux recipe

efilinux is a minimal reference UEFI bootloader. It doesn't include
graphics or a complex configuration syntax, just the bear minimum
necessary to boot a Linux kernel.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>