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/GRUB2 \
|
||||
payloads/external/LinuxBoot \
|
||||
payloads/external/Yabits \
|
||||
|
||||
payloads/coreinfo/build/coreinfo.elf coreinfo:
|
||||
$(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/kernel/.config: 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