[coreboot-gerrit] Change in coreboot[master]: payloads/external: Add yabits payload

Martin Roth (Code Review) gerrit at coreboot.org
Thu Sep 13 12:11:46 CEST 2018


Martin Roth has uploaded this change for review. ( https://review.coreboot.org/28590


Change subject: payloads/external: Add yabits payload
......................................................................

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 at coreboot.org>
---
M payloads/Makefile.inc
M payloads/external/Makefile.inc
A payloads/external/Yabits/Kconfig
A payloads/external/Yabits/Kconfig.name
A payloads/external/Yabits/Makefile
5 files changed, 140 insertions(+), 0 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/90/28590/1

diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc
index 0d142d6..83d3910 100644
--- a/payloads/Makefile.inc
+++ b/payloads/Makefile.inc
@@ -36,6 +36,7 @@
 payloads/external/tianocore \
 payloads/external/GRUB2 \
 payloads/external/LinuxBoot \
+payloads/external/Yabits \
 
 payloads/coreinfo/build/coreinfo.elf coreinfo:
 	$(MAKE) -C payloads/coreinfo defaultbuild
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 8bd0dc3..a5dbfdf 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -282,3 +282,15 @@
 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=
diff --git a/payloads/external/Yabits/Kconfig b/payloads/external/Yabits/Kconfig
new file mode 100644
index 0000000..00b8a9e
--- /dev/null
+++ b/payloads/external/Yabits/Kconfig
@@ -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 Memtest86+ version.
+
+	  This option will fetch the newest version of the Memtest86+ 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 Memtest86+.  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
diff --git a/payloads/external/Yabits/Kconfig.name b/payloads/external/Yabits/Kconfig.name
new file mode 100644
index 0000000..84f860f
--- /dev/null
+++ b/payloads/external/Yabits/Kconfig.name
@@ -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.
diff --git a/payloads/external/Yabits/Makefile b/payloads/external/Yabits/Makefile
new file mode 100644
index 0000000..e425dd2
--- /dev/null
+++ b/payloads/external/Yabits/Makefile
@@ -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) || 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

-- 
To view, visit https://review.coreboot.org/28590
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I132970e952c605c73cfe33dc47f20170ae8aa899
Gerrit-Change-Number: 28590
Gerrit-PatchSet: 1
Gerrit-Owner: Martin Roth <martinroth at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180913/a285251b/attachment.html>


More information about the coreboot-gerrit mailing list