<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>