summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2012-03-21 00:31:26 (GMT)
committerDarren Hart <dvhart@linux.intel.com>2012-03-23 15:12:30 (GMT)
commitb508457fbf3674cd573f00d972aca55048c015cf (patch)
tree8e6f4b982a396ed1ab60e613b7f53d17c280b877
parent2cd93a046edf78537297ecfe8c1ef10520734e89 (diff)
downloadmeta-intel-b508457fbf3674cd573f00d972aca55048c015cf.tar.gz
efilinux: Add efilinux 1.0 and gnu-efi
efilinux is a UEFI OS loader. It was created as a reference implementation with the aim of being well documented and containing well written source code. efilinux is lightweight and convenient as a tool to debug misbehaving UEFI systems. Thanks to Paul Eggleton for is initial set of recipes from which these were based. Signed-off-by: Darren Hart <dvhart@linux.intel.com> CC: Paul Eggleton <paul.eggleton@linux.intel.com> CC: Tom Zanussi <tom.zanussi@intel.com> CC: Kishore K Bodke <kishore.k.bodke@intel.com> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
-rw-r--r--common/recipes-bsp/efilinux/efilinux_1.0.bb28
-rw-r--r--common/recipes-bsp/gnu-efi/gnu-efi/cross-compile-support.patch31
-rw-r--r--common/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch22
-rw-r--r--common/recipes-bsp/gnu-efi/gnu-efi_3.0m.bb34
4 files changed, 115 insertions, 0 deletions
diff --git a/common/recipes-bsp/efilinux/efilinux_1.0.bb b/common/recipes-bsp/efilinux/efilinux_1.0.bb
new file mode 100644
index 0000000..2a7bf6b
--- /dev/null
+++ b/common/recipes-bsp/efilinux/efilinux_1.0.bb
@@ -0,0 +1,28 @@
1DESCRIPTION = "A UEFI OS loader"
2LICENSE = "efilinux"
3LIC_FILES_CHKSUM = "file://efilinux.h;beginline=5;endline=31;md5=2316abda893ef24e6cd55cef33aa0edd"
4
5DEPENDS = "gnu-efi"
6
7inherit deploy
8
9SRCREV = "75b62111f83dab433e901c1a7b0f05e058aa29de"
10PV = "1.0+git${SRCPV}"
11PR = "r0"
12
13SRC_URI = "git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git"
14
15S = "${WORKDIR}/git"
16
17COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
18
19EXTRA_OEMAKE = "INCDIR=${STAGING_INCDIR} LIBDIR=${STAGING_LIBDIR}"
20
21# syslinux uses $LD for linking, strip `-Wl,' so it can work
22export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`"
23
24do_deploy () {
25 install ${S}/efilinux.efi ${DEPLOYDIR}/efilinux.efi
26}
27addtask deploy before do_build after do_compile
28
diff --git a/common/recipes-bsp/gnu-efi/gnu-efi/cross-compile-support.patch b/common/recipes-bsp/gnu-efi/gnu-efi/cross-compile-support.patch
new file mode 100644
index 0000000..221f80e
--- /dev/null
+++ b/common/recipes-bsp/gnu-efi/gnu-efi/cross-compile-support.patch
@@ -0,0 +1,31 @@
1Add cross compile support
2
3Upstream-Status: Submitted [Maintainer directly]
4
5All the user to specify the build variables in the environment.
6
7Signed-off-by: Darren Hart <dvhart@Linux.intel.com>
8
9Index: gnu-efi-3.0/Make.defaults
10===================================================================
11--- gnu-efi-3.0.orig/Make.defaults
12+++ gnu-efi-3.0/Make.defaults
13@@ -54,12 +55,12 @@ LDFLAGS = -nostdlib
14 INSTALL = install
15 prefix = /usr/bin/
16
17-CC = $(prefix)gcc
18-AS = $(prefix)as
19-LD = $(prefix)ld
20-AR = $(prefix)ar
21-RANLIB = $(prefix)ranlib
22-OBJCOPY = $(prefix)objcopy
23+CC := $(prefix)gcc
24+AS := $(prefix)as
25+LD := $(prefix)ld
26+AR := $(prefix)ar
27+RANLIB := $(prefix)ranlib
28+OBJCOPY := $(prefix)objcopy
29
30 ifeq ($(ARCH),ia64)
31 CFLAGS += -mfixed-range=f32-f127
diff --git a/common/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch b/common/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
new file mode 100644
index 0000000..27c94e8
--- /dev/null
+++ b/common/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
@@ -0,0 +1,22 @@
1Fix parallel make failure
2
3Upstream-Status: Submitted [Maintainer directly]
4
5Add a missing dependency which resulted in a race leading to failure
6on larger values of -j.
7
8Signed-off-by: Darren Hart <dvhart@linux.intel.com>
9
10Index: gnu-efi-3.0/Makefile
11===================================================================
12--- gnu-efi-3.0.orig/Makefile
13+++ gnu-efi-3.0/Makefile
14@@ -42,6 +42,8 @@ include $(SRCDIR)/Make.defaults
15
16 SUBDIRS = lib gnuefi inc apps
17
18+gnuefi: lib
19+
20 all: check_gcc $(SUBDIRS)
21
22 $(SUBDIRS):
diff --git a/common/recipes-bsp/gnu-efi/gnu-efi_3.0m.bb b/common/recipes-bsp/gnu-efi/gnu-efi_3.0m.bb
new file mode 100644
index 0000000..252d49a
--- /dev/null
+++ b/common/recipes-bsp/gnu-efi/gnu-efi_3.0m.bb
@@ -0,0 +1,34 @@
1SUMMARY = "Libraries for producing EFI binaries"
2HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/"
3SECTION = "devel"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://debian/copyright;md5=5fb358a180f484b285b0d99acdc29666"
6
7PR = "r2"
8
9SRCREV = "74"
10
11SRC_URI = "http://downloads.sourceforge.net/gnu-efi/gnu-efi_3.0m.orig.tar.gz \
12 file://cross-compile-support.patch \
13 file://parallel-make.patch \
14 "
15SRC_URI[md5sum] = "d0a21125aee56c0c7291ad260e916cb3"
16
17S = "${WORKDIR}/gnu-efi-3.0"
18
19def gnu_efi_arch(d):
20 import re
21 tarch = d.getVar("TARGET_ARCH", True)
22 if re.match("i[3456789]86", tarch):
23 return "ia32"
24 return tarch
25
26EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \
27 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' \
28 "
29
30do_install() {
31 oe_runmake install INSTALLROOT="${D}${prefix}"
32}
33
34FILES_${PN} += "${libdir}/*.lds"