diff options
| author | Yongxin Liu <yongxin.liu@windriver.com> | 2021-12-28 10:13:55 +0800 |
|---|---|---|
| committer | Anuj Mittal <anuj.mittal@intel.com> | 2022-01-26 22:22:59 +0800 |
| commit | 1d1d0f182815eeca36e4e80349fb0e16036171ff (patch) | |
| tree | 875084d7cc0f469186d18ca1292df2766207a68e /recipes-devtools | |
| parent | 4ff5b19ba63ea69c47198e641acbc12e33634cac (diff) | |
| download | meta-intel-1d1d0f182815eeca36e4e80349fb0e16036171ff.tar.gz | |
slimboot: add recipe for Slim Bootloader
Slim Bootloader is an open-source boot firmware running on Intel x86
architecture.
Currently it supports qemu, apl(Apollo Lake), cfl(Coffee Lake),
cml(Comet Lake), tgl(Tiger Lake), and ehl(Elkhart Lake). You can set
"SLIMBOOT_TARGET" in .bb file or .bbappend file to specify or add the
target firmware you want, for example: SLIMBOOT_TARGET = "qemu apl".
The default target is qemu.
Generated firmware and security keys are installed in build directory:
image
`-- usr
`-- libexec
`-- slimboot
|-- Outputs
| |-- qemu
| |-- apl
| `-- cfl
`-- keys
Boot firmware for qemu can be used by command:
"qemu-system-x86_64 -machine q35 -nographic -serial mon:stdio -pflash
SlimBootloader.bin"
Other boot firmware for real hardware cannot be programmed directly to
flash, please refer to https://slimbootloader.github.io/index.html for
more instructions.
Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Diffstat (limited to 'recipes-devtools')
| -rw-r--r-- | recipes-devtools/slimboot/slimboot_git.bb | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/recipes-devtools/slimboot/slimboot_git.bb b/recipes-devtools/slimboot/slimboot_git.bb new file mode 100644 index 00000000..15137cdc --- /dev/null +++ b/recipes-devtools/slimboot/slimboot_git.bb | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | SUMMARY = "Slim Bootloader" | ||
| 2 | DESCRIPTION = "Slim Bootloader is an open-source boot firmware, built from the \ | ||
| 3 | ground up to be small, secure and optimized running on Intel x86 architecture." | ||
| 4 | HOMEPAGE = "https://slimbootloader.github.io" | ||
| 5 | |||
| 6 | LICENSE = "BSD-2-Clause-Patent & MIT & Apache-2.0 & Python-2.0" | ||
| 7 | |||
| 8 | SRC_URI = "git://github.com/slimbootloader/slimbootloader;protocol=https;branch=master" | ||
| 9 | SRCREV = "07b7a1f0e017de6f4041a04e12c44e9574126dfe" | ||
| 10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ef7fba7be2819ac13aaf5d0f842ce5d9 \ | ||
| 11 | file://Licenses/EDK2_License.txt;md5=6123e5bf044a66db96c4ce88a36b2d08 \ | ||
| 12 | file://Licenses/IPP_License.txt;md5=e3fc50a88d0a364313df4b21ef20c29e \ | ||
| 13 | file://Licenses/Lz4_License.txt;md5=093ffc6380c6b1dadf52045a6e44a874 \ | ||
| 14 | file://Licenses/MIT_License.txt;md5=f0f3a517d46b5f0ca048b58f503b6dc1 \ | ||
| 15 | file://Licenses/NetBSD_License.txt;md5=1811b558fd7e03c491ca7f665eaf5529 \ | ||
| 16 | file://Licenses/Python_License.txt;md5=dd98d01d471fac8d8dbdd975229dba03 \ | ||
| 17 | " | ||
| 18 | PV = "0.0.0+git${SRCPV}" | ||
| 19 | |||
| 20 | inherit python3native | ||
| 21 | |||
| 22 | DEPENDS = "openssl-native nasm-native acpica-native util-linux-native" | ||
| 23 | S = "${WORKDIR}/git" | ||
| 24 | |||
| 25 | do_configure[noexec] = "1" | ||
| 26 | |||
| 27 | SLIMBOOT_TARGET ?= "qemu" | ||
| 28 | SLIMBOOT_KEY_DIR ?= "keys" | ||
| 29 | |||
| 30 | do_compile() { | ||
| 31 | # WA: To overcome direct call to "python" in scripts of slimbootloader | ||
| 32 | ln -sf ${PYTHON} ${STAGING_BINDIR_NATIVE}/python | ||
| 33 | |||
| 34 | cd ${S} | ||
| 35 | rm -rf ${SLIMBOOT_KEY_DIR}; mkdir -p ${SLIMBOOT_KEY_DIR} | ||
| 36 | export SBL_KEY_DIR=${S}/${SLIMBOOT_KEY_DIR} | ||
| 37 | ${PYTHON} BootloaderCorePkg/Tools/GenerateKeys.py -k ${SBL_KEY_DIR} | ||
| 38 | |||
| 39 | # Currently use EXTRA_OPTFLAGS to pass the include directory of sysroot-native to | ||
| 40 | # bitbake build system. | ||
| 41 | export EXTRA_OPTFLAGS="-I${STAGING_INCDIR_NATIVE}" | ||
| 42 | |||
| 43 | export EXTRA_LDFLAGS="-L${STAGING_LIBDIR_NATIVE}" | ||
| 44 | |||
| 45 | for target in ${SLIMBOOT_TARGET}; do | ||
| 46 | ${PYTHON} BuildLoader.py build ${target} | ||
| 47 | done | ||
| 48 | } | ||
| 49 | |||
| 50 | do_install() { | ||
| 51 | for target in ${SLIMBOOT_TARGET}; do | ||
| 52 | install -m 0755 -d ${D}${libexecdir}/slimboot/Outputs/${target} | ||
| 53 | install -m 0755 ${S}/Outputs/${target}/* ${D}${libexecdir}/slimboot/Outputs/${target} | ||
| 54 | done | ||
| 55 | |||
| 56 | install -m 0644 -d ${D}${libexecdir}/slimboot/${SLIMBOOT_KEY_DIR} | ||
| 57 | install -m 0644 ${S}/${SLIMBOOT_KEY_DIR}/* ${D}${libexecdir}/slimboot/${SLIMBOOT_KEY_DIR} | ||
| 58 | } | ||
