<p>Marcello Sylvester Bauer has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30053">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">LinuxBoot/targets/linux.mk: refactor Kernel compilation<br><br>Refactor the linux kernel compilation.<br><br>TODO:<br>- parse crosscompiler<br>- support uImage (for arm64)<br><br>Change-Id: Iea2e2c8a22a91bdd2e3f83cd3058426acec3eaba<br>Signed-off-by: Marcello Sylvester Bauer <info@marcellobauer.com><br>---<br>M payloads/external/LinuxBoot/Kconfig<br>M payloads/external/LinuxBoot/targets/linux.mk<br>M payloads/external/LinuxBoot/targets/u-root.mk<br>M payloads/external/Makefile.inc<br>4 files changed, 192 insertions(+), 88 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/53/30053/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/payloads/external/LinuxBoot/Kconfig b/payloads/external/LinuxBoot/Kconfig</span><br><span>index 3b8b70c..de289d7 100644</span><br><span>--- a/payloads/external/LinuxBoot/Kconfig</span><br><span>+++ b/payloads/external/LinuxBoot/Kconfig</span><br><span>@@ -41,12 +41,6 @@</span><br><span> </span><br><span> endchoice</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-config LINUXBOOT_ARCH</span><br><span style="color: hsl(0, 100%, 40%);">- string</span><br><span style="color: hsl(0, 100%, 40%);">- default "amd64" if LINUXBOOT_X86_64</span><br><span style="color: hsl(0, 100%, 40%);">- default "i386" if LINUXBOOT_X86</span><br><span style="color: hsl(0, 100%, 40%);">- default "arm64" if LINUXBOOT_ARM64</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> comment "Linux kernel"</span><br><span> </span><br><span> config LINUXBOOT_COMPILE_KERNEL</span><br><span>@@ -61,32 +55,88 @@</span><br><span> if LINUXBOOT_COMPILE_KERNEL</span><br><span> </span><br><span> choice</span><br><span style="color: hsl(0, 100%, 40%);">- prompt "Kernel version"</span><br><span style="color: hsl(120, 100%, 40%);">+ prompt "Kernel release"</span><br><span> default LINUXBOOT_KERNEL_STABLE</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+ Choose the kernel release.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Select 'custom' if your want to define the kernel version.</span><br><span style="color: hsl(120, 100%, 40%);">+ For more information about the current 'mainline', 'stable' or 'longterm'</span><br><span style="color: hsl(120, 100%, 40%);">+ version, visit: https://www.kernel.org/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_MAINLINE</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "mainline"</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+ Mainline kernel version</span><br><span> </span><br><span> config LINUXBOOT_KERNEL_STABLE</span><br><span style="color: hsl(0, 100%, 40%);">- bool "4.14.67"</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "stable"</span><br><span> help</span><br><span> Stable kernel version</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-config LINUXBOOT_KERNEL_LATEST</span><br><span style="color: hsl(0, 100%, 40%);">- bool "4.18.5"</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_LONGTERM</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "longterm"</span><br><span> help</span><br><span style="color: hsl(0, 100%, 40%);">- Latest kernel version</span><br><span style="color: hsl(120, 100%, 40%);">+ Longterm (LTS) kernel version</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_CUSTOM</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "custom"</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+ Custom kernel version</span><br><span> </span><br><span> endchoice</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-config LINUXBOOT_KERNEL_VERSION</span><br><span style="color: hsl(0, 100%, 40%);">- string</span><br><span style="color: hsl(0, 100%, 40%);">- default "4.18.5" if LINUXBOOT_KERNEL_LATEST</span><br><span style="color: hsl(0, 100%, 40%);">- default "4.14.67" if LINUXBOOT_KERNEL_STABLE</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_CUSTOM_VERSION</span><br><span style="color: hsl(120, 100%, 40%);">+ string "kernel version"</span><br><span style="color: hsl(120, 100%, 40%);">+ default ""</span><br><span style="color: hsl(120, 100%, 40%);">+ depends on LINUXBOOT_KERNEL_CUSTOM</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+ Choose the Linux kernel version number. (x.x.x)</span><br><span style="color: hsl(120, 100%, 40%);">+ Release candidate kernels (rc) are currently are not supported.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+choice</span><br><span style="color: hsl(120, 100%, 40%);">+ prompt "Kernel configuration"</span><br><span style="color: hsl(120, 100%, 40%);">+ default LINUXBOOT_KERNEL_ARCH_DEFAULT_CONFIG</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_ARCH_DEFAULT_CONFIG</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "Default architecture configuration"</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+ This option will use the default configuration for the</span><br><span style="color: hsl(120, 100%, 40%);">+ selected architecture.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_CUSTOM_CONFIG</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "Custom (def)config file"</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+endchoice</span><br><span> </span><br><span> config LINUXBOOT_KERNEL_CONFIGFILE</span><br><span style="color: hsl(0, 100%, 40%);">- string "Kernel config file"</span><br><span style="color: hsl(0, 100%, 40%);">- default ""</span><br><span style="color: hsl(120, 100%, 40%);">+ string "Config file path"</span><br><span style="color: hsl(120, 100%, 40%);">+ default "defconfig"</span><br><span style="color: hsl(120, 100%, 40%);">+ depends on LINUXBOOT_KERNEL_CUSTOM_CONFIG</span><br><span> help</span><br><span style="color: hsl(0, 100%, 40%);">- Add your own kernel configuration file. Otherwise a default</span><br><span style="color: hsl(0, 100%, 40%);">- minimal defconfig is used.</span><br><span style="color: hsl(120, 100%, 40%);">+ Path to the kernel configuration file.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Note: this can be a defconfig file or a complete .config file.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+choice LINUXBOOT_KERNEL_FORMAT</span><br><span style="color: hsl(120, 100%, 40%);">+ prompt "Kernel binary format"</span><br><span style="color: hsl(120, 100%, 40%);">+ default LINUXBOOT_KERNEL_BZIMAGE if LINUXBOOT_X86 || LINUXBOOT_X86_64</span><br><span style="color: hsl(120, 100%, 40%);">+ default LINUXBOOT_KERNEL_UIMAGE if LINUXBOOT_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_BZIMAGE</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "bzImage"</span><br><span style="color: hsl(120, 100%, 40%);">+ depends on LINUXBOOT_X86 || LINUXBOOT_X86_64</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_KERNEL_UIMAGE</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "uImage"</span><br><span style="color: hsl(120, 100%, 40%);">+ depends on LINUXBOOT_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#config LINUXBOOT_KERNEL_VMLINUX</span><br><span style="color: hsl(120, 100%, 40%);">+# bool "vmlinux"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+endchoice</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> config LINUXBOOT_DTB_FILE</span><br><span> string "Compiled devicetree file"</span><br><span>diff --git a/payloads/external/LinuxBoot/targets/linux.mk b/payloads/external/LinuxBoot/targets/linux.mk</span><br><span>index 91118d4..8c1a4be 100644</span><br><span>--- a/payloads/external/LinuxBoot/targets/linux.mk</span><br><span>+++ b/payloads/external/LinuxBoot/targets/linux.mk</span><br><span>@@ -13,83 +13,125 @@</span><br><span> ## GNU General Public License for more details.</span><br><span> ##</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-kernel_tarball=https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$(CONFIG_LINUXBOOT_KERNEL_VERSION).tar.xz</span><br><span style="color: hsl(0, 100%, 40%);">-project_dir=linuxboot</span><br><span style="color: hsl(0, 100%, 40%);">-kernel_dir=$(project_dir)/kernel</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LINUXBOOT_X86_64)=x86_64</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LINUXBOOT_X86)=x86</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LINUXBOOT_ARM64)=arm64</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-XGCCPATH?=$(PWD)/util/crossgcc/xgcc/bin</span><br><span style="color: hsl(0, 100%, 40%);">-ifeq ($(CONFIG_LINUXBOOT_ARCH),i386)</span><br><span style="color: hsl(0, 100%, 40%);">-LINUXBOOT_COMPILE?=$(XGCCPATH)/i386-linux-</span><br><span style="color: hsl(0, 100%, 40%);">-ARCH?=x86</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),amd64)</span><br><span style="color: hsl(0, 100%, 40%);">-LINUXBOOT_COMPILE?=$(XGCCPATH)/x86_64-linux-</span><br><span style="color: hsl(0, 100%, 40%);">-ARCH?=x86_64</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(0, 100%, 40%);">-LINUXBOOT_COMPILE?=$(XGCCPATH)/aarch64-linux-</span><br><span style="color: hsl(0, 100%, 40%);">-ARCH?=arm64</span><br><span style="color: hsl(120, 100%, 40%);">+TAG-$(CONFIG_LINUXBOOT_KERNEL_MAINLINE)=mainline</span><br><span style="color: hsl(120, 100%, 40%);">+TAG-$(CONFIG_LINUXBOOT_KERNEL_STABLE)=stable</span><br><span style="color: hsl(120, 100%, 40%);">+TAG-$(CONFIG_LINUXBOOT_KERNEL_LONGTERM)=longterm</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+GPG2:=$(shell which gpg)</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq ($(GPG2),)</span><br><span style="color: hsl(120, 100%, 40%);">+verify_signature=y</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-OBJCOPY:=$(LINUXBOOT_COMPILE)objcopy</span><br><span style="color: hsl(120, 100%, 40%);">+pwd:=$(shell pwd)</span><br><span style="color: hsl(120, 100%, 40%);">+project_dir=linuxboot</span><br><span style="color: hsl(120, 100%, 40%);">+tarball_dir:=$(project_dir)/tarball</span><br><span style="color: hsl(120, 100%, 40%);">+decompress_flag=.done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_LINUXBOOT_KERNEL_CUSTOM),y)</span><br><span style="color: hsl(120, 100%, 40%);">+ kernel_version:=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM_VERSION)</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+ kernel_version:=$(shell curl -s -k https://www.kernel.org/feeds/kdist.xml | \</span><br><span style="color: hsl(120, 100%, 40%);">+ sed -n -e 's@.*<guid isPermaLink="false">\(.*\)</guid>.*@\1@p' | \</span><br><span style="color: hsl(120, 100%, 40%);">+ awk -F ',' '/$(TAG-y)/{ print $$3 }' | \</span><br><span style="color: hsl(120, 100%, 40%);">+ head -n 1)</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_dir=$(project_dir)/kernel-$(subst .,_,$(kernel_version))</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_tarball=linux-$(kernel_version).tar</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_mirror=https://mirrors.edge.kernel.org/pub/linux/kernel</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(findstring x2.6.,x$(kernel_version)),x2.6.)</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_mirror_path := $(kernel_mirror)/v2.6</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(findstring x3.,x$(kernel_version)),x3.)</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_mirror_path := $(kernel_mirror)/v3.x</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(findstring x4.,x$(kernel_version)),x4.)</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_mirror_path := $(kernel_mirror)/v4.x</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(findstring x5.,x$(kernel_version)),x5.)</span><br><span style="color: hsl(120, 100%, 40%);">+kernel_mirror_path := $(kernel_mirror)/v5.x</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span> </span><br><span> all: kernel</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-toolchain:</span><br><span style="color: hsl(0, 100%, 40%);">- if [[ ! -x "$(LINUXBOOT_COMPILE)gcc" ]]; then \</span><br><span style="color: hsl(0, 100%, 40%);">- echo "Toolchain '$(LINUXBOOT_COMPILE)*' is missing."; \</span><br><span style="color: hsl(0, 100%, 40%);">- exit 1; \</span><br><span style="color: hsl(120, 100%, 40%);">+lookup:</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(kernel_version),)</span><br><span style="color: hsl(120, 100%, 40%);">+ $(error kernel version lookup failed for $(TAG-y) release)</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+ @echo " WWW Kernel [$(TAG-y)] $(kernel_version)"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+fetch:</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq ($(shell [[ -d "$(kernel_dir)" && -f "$(kernel_dir)/$(decompress_flag)" ]];echo $$?),0)</span><br><span style="color: hsl(120, 100%, 40%);">+ mkdir -p $(tarball_dir)</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq ($(verify_signature),y)</span><br><span style="color: hsl(120, 100%, 40%);">+ @echo " GPG gpg2 tool not found. Skipping signature check"</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+ if [[ -f $(tarball_dir)/$(kernel_tarball).xz && -f $(tarball_dir)/$(kernel_tarball).xz ]]; then \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) check signature"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((xz -cd $(tarball_dir)/$(kernel_tarball).xz | $(GPG2) --verify $(tarball_dir)/$(kernel_tarball).sign - ) >/dev/null 2>&1); then \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) signature valid"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ else \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) failed"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " RM $(kernel_tarball)"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f $(tarball_dir)/$(kernel_tarball).{xz,sign}; \</span><br><span style="color: hsl(120, 100%, 40%);">+ fi; \</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-$(kernel_dir)/.config:</span><br><span style="color: hsl(0, 100%, 40%);">- echo " WWW Download Linux $(CONFIG_LINUXBOOT_KERNEL_VERSION)"</span><br><span style="color: hsl(0, 100%, 40%);">- mkdir -p $(kernel_dir)</span><br><span style="color: hsl(0, 100%, 40%);">-ifeq ("$(wildcard $(kernel_dir)/README)","")</span><br><span style="color: hsl(0, 100%, 40%);">- curl -s $(kernel_tarball) | tar xJ -C $(kernel_dir) --strip 1</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+ if [[ ! -f $(tarball_dir)/$(kernel_tarball).xz && ! -f $(tarball_dir)/$(kernel_tarball).xz ]]; then \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " WWW $(kernel_tarball).xz"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ cd $(tarball_dir); \</span><br><span style="color: hsl(120, 100%, 40%);">+ curl -OLs "$(kernel_mirror_path)/$(kernel_tarball).{xz,sign}"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ cd $(pwd); \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) check signature"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((xz -cd $(tarball_dir)/$(kernel_tarball).xz | $(GPG2) --verify $(tarball_dir)/$(kernel_tarball).sign - ) >/dev/null 2>&1); then \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) signature valid"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ else \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " GPG $(kernel_tarball) failed"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " RM $(kernel_tarball)"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f $(tarball_dir)/$(kernel_tarball).{xz,sign}; \</span><br><span style="color: hsl(120, 100%, 40%);">+ exit 1; \</span><br><span style="color: hsl(120, 100%, 40%);">+ fi; \</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-config: $(kernel_dir)/.config</span><br><span style="color: hsl(0, 100%, 40%);">- echo " CONFIG Linux $(CONFIG_LINUXBOOT_KERNEL_VERSION)"</span><br><span style="color: hsl(0, 100%, 40%);">-ifneq ($(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE),)</span><br><span style="color: hsl(120, 100%, 40%);">+unpack: fetch</span><br><span style="color: hsl(120, 100%, 40%);">+ if [[ -d "$(kernel_dir)" && ! -f "$(kernel_dir)/$(decompress_flag)" ]]; then \</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -rf $(kernel_dir); \</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+ if [[ ! -d "$(kernel_dir)" ]]; then \</span><br><span style="color: hsl(120, 100%, 40%);">+ mkdir $(kernel_dir); \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo " XZ $(kernel_tarball).xz"; \</span><br><span style="color: hsl(120, 100%, 40%);">+ tar xJf $(tarball_dir)/$(kernel_tarball).xz --strip 1 -C $(kernel_dir); \</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+ touch $(kernel_dir)/$(decompress_flag)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(kernel_dir)/.config: unpack</span><br><span style="color: hsl(120, 100%, 40%);">+ @echo " CONFIG Linux $(kernel_version)"</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_LINUXBOOT_KERNEL_CUSTOM_CONFIG),y)</span><br><span> cp $(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) $(kernel_dir)/.config</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),i386)</span><br><span style="color: hsl(0, 100%, 40%);">- cp x86/defconfig $(kernel_dir)/.config</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),amd64)</span><br><span style="color: hsl(0, 100%, 40%);">- cp x86_64/defconfig $(kernel_dir)/.config</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(0, 100%, 40%);">- cp arm64/defconfig $(kernel_dir)/.config</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+ cp $(ARCH-y)/defconfig $(kernel_dir)/.config</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+ $(MAKE) -C $(kernel_dir) olddefconfig ARCH=$(ARCH-y)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+build: $(kernel_dir)/.config</span><br><span style="color: hsl(120, 100%, 40%);">+ @echo " MAKE Linux $(kernel_version)"</span><br><span style="color: hsl(120, 100%, 40%);">+ $(MAKE) -C $(kernel_dir) CROSS_COMPILE=$(LINUXBOOT_COMPILE) ARCH=$(ARCH-y)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/$(LINUXBOOT_KERNEL_IMAGE): build</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_LINUXBOOT_KERNEL_BZIMAGE),y)</span><br><span style="color: hsl(120, 100%, 40%);">+ @echo " CP bzImage"</span><br><span style="color: hsl(120, 100%, 40%);">+ cp $(kernel_dir)/arch/x86/boot/bzImage $@</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+ $(error Kernel image format not found)</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ifneq (,$(filter $(CONFIG_LINUXBOOT_ARCH),i386 amd64))</span><br><span style="color: hsl(0, 100%, 40%);">-$(kernel_dir)/arch/x86/boot/bzImage: config toolchain</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(0, 100%, 40%);">-$(kernel_dir)/vmlinux: config toolchain</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">- echo " MAKE Kernel $(CONFIG_LINUXBOOT_KERNEL_VERSION)"</span><br><span style="color: hsl(0, 100%, 40%);">- $(MAKE) -C $(kernel_dir) olddefconfig CROSS_COMPILE=$(LINUXBOOT_COMPILE) ARCH=$(ARCH)</span><br><span style="color: hsl(0, 100%, 40%);">- $(MAKE) -C $(kernel_dir) -j $(CPUS) CROSS_COMPILE=$(LINUXBOOT_COMPILE) ARCH=$(ARCH)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ifneq (,$(filter $(CONFIG_LINUXBOOT_ARCH),i386 amd64))</span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/bzImage: $(kernel_dir)/arch/x86/boot/bzImage</span><br><span style="color: hsl(0, 100%, 40%);">- cp $< $@</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/vmlinux.bin: $(kernel_dir)/vmlinux</span><br><span style="color: hsl(0, 100%, 40%);">- $(OBJCOPY) -O binary $< $@</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/target.dtb: $(PWD)/$(CONFIG_LINUXBOOT_DTB_FILE)</span><br><span style="color: hsl(0, 100%, 40%);">- cp $< $@</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/vmlinux.bin.lzma: $(project_dir)/vmlinux.bin</span><br><span style="color: hsl(0, 100%, 40%);">- xz -c -k -f --format=lzma --lzma1=dict=1MiB,lc=3,lp=0,pb=3 $< > $@</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/uImage: $(project_dir)/vmlinux.bin.lzma $(project_dir)/../arm64/kernel_fdt_lzma.its $(project_dir)/target.dtb</span><br><span style="color: hsl(0, 100%, 40%);">- cp $(project_dir)/../arm64/kernel_fdt_lzma.its $(project_dir)</span><br><span style="color: hsl(0, 100%, 40%);">- cp $(PWD)/$(CONFIG_LINUXBOOT_INITRAMFS)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) $(project_dir)/u-initramfs</span><br><span style="color: hsl(0, 100%, 40%);">- mkimage -f $(project_dir)/kernel_fdt_lzma.its $@</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq ($(TAG-y),)</span><br><span style="color: hsl(120, 100%, 40%);">+kernel: lookup $(project_dir)/$(LINUXBOOT_KERNEL_IMAGE)</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+kernel: $(project_dir)/$(LINUXBOOT_KERNEL_IMAGE)</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ifneq (,$(filter $(CONFIG_LINUXBOOT_ARCH),i386 amd64))</span><br><span style="color: hsl(0, 100%, 40%);">-kernel: $(project_dir)/bzImage</span><br><span style="color: hsl(0, 100%, 40%);">-else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(0, 100%, 40%);">-kernel: $(project_dir)/uImage</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-.PHONY: kernel config toolchain</span><br><span style="color: hsl(120, 100%, 40%);">+.PHONY: all kernel build unpack fetch check</span><br><span>diff --git a/payloads/external/LinuxBoot/targets/u-root.mk b/payloads/external/LinuxBoot/targets/u-root.mk</span><br><span>index 86c9019..28d7dbb 100644</span><br><span>--- a/payloads/external/LinuxBoot/targets/u-root.mk</span><br><span>+++ b/payloads/external/LinuxBoot/targets/u-root.mk</span><br><span>@@ -18,6 +18,10 @@</span><br><span> uroot_bin=$(project_dir)/u-root</span><br><span> uroot_package=github.com/u-root/u-root</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LIBUXBOOT_X86_64)=amd64</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LINUXBOOT_X86)=i386</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH-$(CONFIG_LINUXBOOT_ARM64)=arm64</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> go_version=$(shell go version | sed -nr 's/.*go([0-9]+\.[0-9]+.?[0-9]?).*/\1/p' )</span><br><span> go_version_major=$(shell echo $(go_version) | sed -nr 's/^([0-9]+)\.([0-9]+)\.?([0-9]*)$$/\1/p')</span><br><span> go_version_minor=$(shell echo $(go_version) | sed -nr 's/^([0-9]+)\.([0-9]+)\.?([0-9]*)$$/\2/p')</span><br><span>@@ -64,7 +68,7 @@</span><br><span> GOPATH=$(go_path_dir) go build -o $(uroot_bin) $(uroot_package)</span><br><span> </span><br><span> u-root: build</span><br><span style="color: hsl(0, 100%, 40%);">- GOARCH=$(CONFIG_LINUXBOOT_ARCH) GOPATH=$(go_path_dir) $(uroot_bin) \</span><br><span style="color: hsl(120, 100%, 40%);">+ GOARCH=$(ARCH-y) GOPATH=$(go_path_dir) $(uroot_bin) \</span><br><span> $(uroot_args) -o $(project_dir)/initramfs_u-root.cpio $(uroot_cmds)</span><br><span> </span><br><span> .PHONY: all u-root build checkout get version</span><br><span>diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc</span><br><span>index 4fda725..1b5e20f 100644</span><br><span>--- a/payloads/external/Makefile.inc</span><br><span>+++ b/payloads/external/Makefile.inc</span><br><span>@@ -259,13 +259,21 @@</span><br><span> linuxboot:</span><br><span> $(MAKE) -C payloads/external/LinuxBoot \</span><br><span> CPUS=$(CPUS) \</span><br><span style="color: hsl(0, 100%, 40%);">- CONFIG_LINUXBOOT_ARCH=$(CONFIG_LINUXBOOT_ARCH) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_X86_64=$(CONFIG_LINUXBOOT_X86_64) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_X86=$(CONFIG_LINUXBOOT_X86) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_ARM64=$(CONFIG_LINUXBOOT_ARM64) \</span><br><span> CONFIG_LINUXBOOT_KERNEL=$(CONFIG_PAYLOAD_FILE) \</span><br><span> CONFIG_LINUXBOOT_INITRAMFS=$(CONFIG_LINUX_INITRD) \</span><br><span> CONFIG_LINUXBOOT_INITRAMFS_SUFFIX=$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) \</span><br><span> CONFIG_LINUXBOOT_COMPILE_KERNEL=$(CONFIG_LINUXBOOT_COMPILE_KERNEL) \</span><br><span> CONFIG_LINUXBOOT_BUILD_INITRAMFS=$(CONFIG_LINUXBOOT_BUILD_INITRAMFS) \</span><br><span style="color: hsl(0, 100%, 40%);">- CONFIG_LINUXBOOT_KERNEL_VERSION=$(CONFIG_LINUXBOOT_KERNEL_VERSION) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_MAINLINE=$(CONFIG_LINUXBOOT_KERNEL_MAINLINE) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_STABLE=$(CONFIG_LINUXBOOT_KERNEL_STABLE) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_LONGTERM=$(CONFIG_LINUXBOOT_KERNEL_LONGTERM) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_CUSTOM=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_CUSTOM_VERSION=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM_VERSION) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_CUSTOM_CONFIG=$(CONFIG_LINUXBOOT_KERNEL_CUSTOM_CONFIG) \</span><br><span style="color: hsl(120, 100%, 40%);">+ CONFIG_LINUXBOOT_KERNEL_BZIMAGE=$(CONFIG_LINUXBOOT_KERNEL_BZIMAGE) \</span><br><span> CONFIG_LINUXBOOT_KERNEL_CONFIGFILE=$(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) \</span><br><span> CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ=$(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ) \</span><br><span> CONFIG_LINUXBOOT_UROOT=$(CONFIG_LINUXBOOT_UROOT) \</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30053">change 30053</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/30053"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iea2e2c8a22a91bdd2e3f83cd3058426acec3eaba </div>
<div style="display:none"> Gerrit-Change-Number: 30053 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Marcello Sylvester Bauer <sylvblck@sylv.io> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>