payloads/external: Add yabits payload
Yabits (Yet another UEFI bootloader) is designed to be a slim and quick alternative to Tianocore. It is still under heavy development. https://web.archive.org/web/https://yabits.github.io/ Change-Id: I132970e952c605c73cfe33dc47f20170ae8aa899 Signed-off-by: Martin Roth <martin@coreboot.org> Reviewed-on: https://review.coreboot.org/28590 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
This commit is contained in:
parent
d91b5cf5c9
commit
f2c3d8076e
|
@ -36,6 +36,7 @@ payloads/external/tint \
|
||||||
payloads/external/tianocore \
|
payloads/external/tianocore \
|
||||||
payloads/external/GRUB2 \
|
payloads/external/GRUB2 \
|
||||||
payloads/external/LinuxBoot \
|
payloads/external/LinuxBoot \
|
||||||
|
payloads/external/Yabits \
|
||||||
|
|
||||||
payloads/coreinfo/build/coreinfo.elf coreinfo:
|
payloads/coreinfo/build/coreinfo.elf coreinfo:
|
||||||
$(MAKE) -C payloads/coreinfo defaultbuild
|
$(MAKE) -C payloads/coreinfo defaultbuild
|
||||||
|
|
|
@ -283,3 +283,15 @@ payloads/external/LinuxBoot/linuxboot/kernel-image: linuxboot
|
||||||
payloads/external/LinuxBoot/linuxboot/initramfs.cpio.xz: linuxboot
|
payloads/external/LinuxBoot/linuxboot/initramfs.cpio.xz: linuxboot
|
||||||
payloads/external/LinuxBoot/linuxboot/kernel/.config: linuxboot
|
payloads/external/LinuxBoot/linuxboot/kernel/.config: linuxboot
|
||||||
payloads/external/LinuxBoot/linuxboot/go/src/github.com/u-root/u-root/.git: linuxboot
|
payloads/external/LinuxBoot/linuxboot/go/src/github.com/u-root/u-root/.git: linuxboot
|
||||||
|
|
||||||
|
payloads/external/Yabits/uefi/build/uefi.elf yabits:
|
||||||
|
$(MAKE) -C payloads/external/Yabits all \
|
||||||
|
CC="$(CC_x86_32)" \
|
||||||
|
LD="$(LD_x86_32)" \
|
||||||
|
OBJCOPY="$(OBJCOPY_x86_32)" \
|
||||||
|
AS="$(AS_x86_32)" \
|
||||||
|
CONFIG_YABITS_REVISION=$(CONFIG_YABITS_REVISION) \
|
||||||
|
CONFIG_YABITS_REVISION_ID=$(CONFIG_YABITS_REVISION_ID) \
|
||||||
|
CONFIG_YABITS_MASTER=$(CONFIG_YABITS_MASTER) \
|
||||||
|
CONFIG_YABITS_STABLE=$(CONFIG_YABITS_STABLE) \
|
||||||
|
MFLAGS= MAKEFLAGS=
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
if PAYLOAD_YABITS
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Yabits version"
|
||||||
|
default YABITS_STABLE
|
||||||
|
|
||||||
|
config YABITS_STABLE
|
||||||
|
bool "Stable"
|
||||||
|
help
|
||||||
|
Stable Yabits version.
|
||||||
|
|
||||||
|
For reproducible builds, this option must be selected.
|
||||||
|
|
||||||
|
config YABITS_MASTER
|
||||||
|
bool "Master"
|
||||||
|
help
|
||||||
|
Newest version.
|
||||||
|
|
||||||
|
This option will fetch the newest version of the Yabits code,
|
||||||
|
updating as new changes are committed. This makes the build
|
||||||
|
non-reproducible, as it can fetch different code each time.
|
||||||
|
|
||||||
|
config YABITS_REVISION
|
||||||
|
bool "git revision"
|
||||||
|
help
|
||||||
|
Select this option if you have a specific commit or branch
|
||||||
|
that you want to use as the revision from which to
|
||||||
|
build Yabits. Using a branch name makes the build
|
||||||
|
non-reproducible, as it can fetch different code as the
|
||||||
|
branch changes.
|
||||||
|
|
||||||
|
You will be able to specify the name of a branch or a commit id
|
||||||
|
later.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config YABITS_REVISION_ID
|
||||||
|
string "Insert a commit's SHA-1 or a branch name"
|
||||||
|
depends on YABITS_REVISION
|
||||||
|
default "origin/master"
|
||||||
|
help
|
||||||
|
The commit's SHA-1 or branch name of the revision to use.
|
||||||
|
|
||||||
|
config PAYLOAD_FILE
|
||||||
|
default "payloads/external/Yabits/uefi/build/uefi.elf"
|
||||||
|
|
||||||
|
endif
|
|
@ -0,0 +1,11 @@
|
||||||
|
config PAYLOAD_YABITS
|
||||||
|
bool "Yabits - Yet another UEFI Bootloader (Under Development)"
|
||||||
|
depends on ARCH_X86
|
||||||
|
help
|
||||||
|
Yabits - yabits.github.io
|
||||||
|
yabits is a pure UEFI coreboot payload. Compared with
|
||||||
|
TianoCore, it is fast and lightweight. yabits is based on the
|
||||||
|
part of Minoca OS. It can run GRUB2, Linux, OpenBSD, and other
|
||||||
|
UEFI applications.
|
||||||
|
|
||||||
|
It is still under the development and not ready for production.
|
|
@ -0,0 +1,69 @@
|
||||||
|
##
|
||||||
|
## This file is part of the coreboot project.
|
||||||
|
##
|
||||||
|
## Copyright (C) 2016 Google Inc.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify
|
||||||
|
## it under the terms of the GNU General Public License as published by
|
||||||
|
## the Free Software Foundation; version 2 of the License.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful,
|
||||||
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
## GNU General Public License for more details.
|
||||||
|
##
|
||||||
|
|
||||||
|
TAG-$(CONFIG_YABITS_MASTER)=origin/master
|
||||||
|
NAME-$(CONFIG_YABITS_MASTER)=Master
|
||||||
|
TAG-$(CONFIG_YABITS_STABLE)=d25abb067431dee9af9f8a874a209730ab7f0e91
|
||||||
|
NAME-$(CONFIG_YABITS_STABLE)=Stable
|
||||||
|
TAG-$(CONFIG_YABITS_REVISION)=$(CONFIG_YABITS_REVISION_ID)
|
||||||
|
|
||||||
|
project_name=Yabits
|
||||||
|
project_dir=$(CURDIR)/uefi
|
||||||
|
project_git_repo=https://github.com/yabits/uefi.git
|
||||||
|
LIBCONFIG_PATH="../../../libpayload"
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
$(project_dir):
|
||||||
|
echo " Cloning $(project_name) from Git"
|
||||||
|
git clone $(project_git_repo) $(project_dir)
|
||||||
|
|
||||||
|
fetch: $(project_dir)
|
||||||
|
ifeq ($(TAG-y),)
|
||||||
|
echo "Error: The specified tag is invalid"
|
||||||
|
ifeq ($(CONFIG_YABITS_REVISION),y)
|
||||||
|
echo "Error: There is no revision specified for $(project_name)"
|
||||||
|
false
|
||||||
|
endif
|
||||||
|
false
|
||||||
|
endif
|
||||||
|
-cd $(project_dir); git show $(TAG-y) >/dev/null 2>&1 ; \
|
||||||
|
if [ $$? -ne 0 ] || [ "$(TAG-y)" = "origin/master" ]; then \
|
||||||
|
echo " Fetching new commits from the $(project_name) git repo"; \
|
||||||
|
git fetch; fi
|
||||||
|
|
||||||
|
checkout: fetch
|
||||||
|
echo " Checking out $(project_name) revision $(NAME-y) ($(TAG-y))"
|
||||||
|
cd $(project_dir); \
|
||||||
|
git checkout master; \
|
||||||
|
git branch -D coreboot 2>/dev/null; \
|
||||||
|
git checkout -b coreboot $(TAG-y)
|
||||||
|
|
||||||
|
build: checkout
|
||||||
|
echo " MAKE $(project_name) $(NAME-y)"
|
||||||
|
$(if $(wildcard uefi/.xcompile),,$(shell bash ../../../util/xcompile/xcompile > uefi/.xcompile))
|
||||||
|
$(MAKE) -C $(project_dir) defconfig LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH)
|
||||||
|
$(MAKE) -C $(project_dir) all LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
test -d $(project_dir) && $(MAKE) -C $(project_dir) clean LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH) || exit 0
|
||||||
|
|
||||||
|
distclean:
|
||||||
|
rm -rf $(project_dir)
|
||||||
|
|
||||||
|
print-repo-info:
|
||||||
|
echo "$(project_git_repo) $(project_dir)"
|
||||||
|
|
||||||
|
.PHONY: all build checkout clean distclean fetch print-repo-info
|
Loading…
Reference in New Issue