<p>Patrick Rudolph has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/25152">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">payloads/LinuxBoot: Add ARM64 support<br><br>Add support for ARCH=ARM64 and introduce CROSS_COMPILE for all architectures.<br><br>Change-Id: I9a0cc248283432fb2384956ca55e687d4127398c<br>Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com><br>---<br>M payloads/external/LinuxBoot/Kconfig<br>M payloads/external/LinuxBoot/Kconfig.name<br>M payloads/external/LinuxBoot/Makefile<br>A payloads/external/LinuxBoot/arm64/defconfig<br>A payloads/external/LinuxBoot/arm64/kernel_fdt.its<br>M payloads/external/LinuxBoot/targets/u-root.mk<br>M payloads/external/Makefile.inc<br>7 files changed, 345 insertions(+), 26 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/52/25152/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 74e6c94..278a8ef 100644</span><br><span>--- a/payloads/external/LinuxBoot/Kconfig</span><br><span>+++ b/payloads/external/LinuxBoot/Kconfig</span><br><span>@@ -20,19 +20,30 @@</span><br><span> </span><br><span> config LINUXBOOT_X86_64</span><br><span>        bool "x86_64"</span><br><span style="color: hsl(120, 100%, 40%);">+       depends on ARCH_X86</span><br><span>  help</span><br><span>           AMD64 kernel and initramfs</span><br><span> </span><br><span> config LINUXBOOT_X86</span><br><span>     bool "x86"</span><br><span style="color: hsl(120, 100%, 40%);">+  depends on ARCH_X86</span><br><span>  help</span><br><span>           X86 kernel and initramfs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+  bool "arm64"</span><br><span style="color: hsl(120, 100%, 40%);">+        depends on ARCH_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+ select PAYLOAD_UIMAGE</span><br><span style="color: hsl(120, 100%, 40%);">+ help</span><br><span style="color: hsl(120, 100%, 40%);">+    AARCH64 kernel and initramfs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> endchoice</span><br><span> </span><br><span> config LINUXBOOT_ARCH</span><br><span>   string</span><br><span>       default "amd64" if LINUXBOOT_X86_64</span><br><span>        default "386" if LINUXBOOT_X86</span><br><span style="color: hsl(120, 100%, 40%);">+      default "arm64" if LINUXBOOT_ARM64</span><br><span> </span><br><span> choice</span><br><span>   prompt "Kernel version"</span><br><span>@@ -61,6 +72,13 @@</span><br><span>       help</span><br><span>           Add your own kernel command-line arguments.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+config LINUXBOOT_DTB_FILE</span><br><span style="color: hsl(120, 100%, 40%);">+  string "Compiled devicetree file"</span><br><span style="color: hsl(120, 100%, 40%);">+   depends on LINUXBOOT_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+    default ""</span><br><span style="color: hsl(120, 100%, 40%);">+  help</span><br><span style="color: hsl(120, 100%, 40%);">+    Add your own devicetree blob.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> config PAYLOAD_FILE</span><br><span>     default "payloads/external/LinuxBoot/linuxboot/kernel-image"</span><br><span> </span><br><span>@@ -107,6 +125,7 @@</span><br><span> </span><br><span> config PAYLOAD_USERSPACE</span><br><span>     string ""</span><br><span style="color: hsl(120, 100%, 40%);">+   depends on ARCH_X86</span><br><span>  default "payloads/external/LinuxBoot/linuxboot/initramfs.cpio.xz"</span><br><span> </span><br><span> endif</span><br><span>diff --git a/payloads/external/LinuxBoot/Kconfig.name b/payloads/external/LinuxBoot/Kconfig.name</span><br><span>index b7b1085..18438c7 100644</span><br><span>--- a/payloads/external/LinuxBoot/Kconfig.name</span><br><span>+++ b/payloads/external/LinuxBoot/Kconfig.name</span><br><span>@@ -14,7 +14,7 @@</span><br><span> </span><br><span> config PAYLOAD_LINUXBOOT</span><br><span>    bool "LinuxBoot"</span><br><span style="color: hsl(0, 100%, 40%);">-      depends on ARCH_X86</span><br><span style="color: hsl(120, 100%, 40%);">+   depends on ARCH_X86 || ARCH_ARM64</span><br><span>    help</span><br><span>           Select this option if you want to build a coreboot image</span><br><span>     with a LinuxBoot payload. If you don't know what this is</span><br><span>diff --git a/payloads/external/LinuxBoot/Makefile b/payloads/external/LinuxBoot/Makefile</span><br><span>index 10ad0c3..e0ef998 100644</span><br><span>--- a/payloads/external/LinuxBoot/Makefile</span><br><span>+++ b/payloads/external/LinuxBoot/Makefile</span><br><span>@@ -17,9 +17,30 @@</span><br><span> kernel_dir=$(project_dir)/kernel</span><br><span> </span><br><span> unexport $(COREBOOT_EXPORTS)</span><br><span style="color: hsl(120, 100%, 40%);">+unexport MAKEFLAGS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+XGCC:=$(PWD)/util/crossgcc/xgcc/bin</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_LINUXBOOT_ARCH),386)</span><br><span style="color: hsl(120, 100%, 40%);">+CROSS_COMPILE?=$(XGCC)/i386-linux-</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH?=x86</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(CONFIG_LINUXBOOT_ARCH),amd64)</span><br><span style="color: hsl(120, 100%, 40%);">+CROSS_COMPILE?=$(XGCC)/x86_64-linux-</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH?=x86_64</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(120, 100%, 40%);">+CROSS_COMPILE?=$(XGCC)/aarch64-linux-</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH?=arm64</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%);">+OBJCOPY:=$(CROSS_COMPILE)objcopy</span><br><span> </span><br><span> all: payload</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+toolchain:</span><br><span style="color: hsl(120, 100%, 40%);">+        if [[ ! -x "$(CROSS_COMPILE)gcc" ]]; then \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "Toolchain '$(CROSS_COMPILE)*' is missing."; \</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%);">+</span><br><span> $(kernel_dir)/.config:</span><br><span>       echo "    WWW        Download Linux $(CONFIG_LINUXBOOT_KERNEL_VERSION)"</span><br><span>    mkdir -p $(kernel_dir)</span><br><span>@@ -36,23 +57,44 @@</span><br><span>         cp x86/defconfig $(kernel_dir)/.config</span><br><span> else ifeq ($(CONFIG_LINUXBOOT_ARCH),amd64)</span><br><span>         cp x86_64/defconfig $(kernel_dir)/.config</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(120, 100%, 40%);">+ cp arm64/defconfig $(kernel_dir)/.config</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/kernel-image: config</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq (,$(filter $(CONFIG_LINUXBOOT_ARCH),386 amd64))</span><br><span style="color: hsl(120, 100%, 40%);">+$(kernel_dir)/arch/x86/boot/bzImage: config toolchain</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(120, 100%, 40%);">+$(kernel_dir)/vmlinux: config toolchain</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span>   echo "    MAKE       Kernel $(CONFIG_LINUXBOOT_KERNEL_VERSION)"</span><br><span style="color: hsl(0, 100%, 40%);">-       $(MAKE) -C $(kernel_dir) olddefconfig</span><br><span style="color: hsl(0, 100%, 40%);">-   $(MAKE) -C $(kernel_dir) -j $(CPUS)</span><br><span style="color: hsl(0, 100%, 40%);">-ifeq ($(CONFIG_LINUXBOOT_ARCH),386)</span><br><span style="color: hsl(0, 100%, 40%);">-  cp $(kernel_dir)/arch/x86/boot/bzImage $(project_dir)/kernel-image</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 $(kernel_dir)/arch/x86/boot/bzImage $(project_dir)/kernel-image</span><br><span style="color: hsl(120, 100%, 40%);">+    $(MAKE) -C $(kernel_dir) olddefconfig CROSS_COMPILE=$(CROSS_COMPILE) ARCH=$(ARCH)</span><br><span style="color: hsl(120, 100%, 40%);">+     $(MAKE) -C $(kernel_dir) -j $(CPUS) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=$(ARCH)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ifneq (,$(filter $(CONFIG_LINUXBOOT_ARCH),386 amd64))</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/kernel-image: $(kernel_dir)/arch/x86/boot/bzImage</span><br><span style="color: hsl(120, 100%, 40%);">+    cp $< $@</span><br><span style="color: hsl(120, 100%, 40%);">+else ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/vmlinux.bin: $(kernel_dir)/vmlinux</span><br><span style="color: hsl(120, 100%, 40%);">+    $(OBJCOPY) -O binary $< $@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/target.dtb: $(CONFIG_LINUXBOOT_DTB_FILE)</span><br><span style="color: hsl(120, 100%, 40%);">+      cp $< $@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/kernel-image: $(project_dir)/vmlinux.bin $(project_dir)/../arm64/kernel_fdt.its $(project_dir)/target.dtb $(project_dir)/initramfs.cpio.xz</span><br><span style="color: hsl(120, 100%, 40%);">+      cp $(project_dir)/../arm64/kernel_fdt.its $(project_dir)</span><br><span style="color: hsl(120, 100%, 40%);">+      mkimage -f $(project_dir)/kernel_fdt.its $@</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-payload: $(project_dir)/kernel-image</span><br><span> ifeq ($(CONFIG_LINUXBOOT_UROOT),y)</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/initramfs.cpio.xz:</span><br><span>        $(MAKE) -f targets/u-root.mk</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/initramfs.cpio.xz:</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "Building without u-root support"</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+payload: $(project_dir)/kernel-image $(project_dir)/initramfs.cpio.xz</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> clean:</span><br><span>     if [ -d "$(kernel_dir)" ]; then make -C $(kernel_dir) clean; fi</span><br><span>    rm -f $(project_dir)/initramfs.cpio.xz</span><br><span>@@ -60,4 +102,4 @@</span><br><span> distclean:</span><br><span>    rm -rf $(project_dir)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-.PHONY: config patch payload clean distclean clone fetch all</span><br><span style="color: hsl(120, 100%, 40%);">+.PHONY: config patch payload clean distclean clone fetch all toolchain</span><br><span>diff --git a/payloads/external/LinuxBoot/arm64/defconfig b/payloads/external/LinuxBoot/arm64/defconfig</span><br><span>new file mode 100644</span><br><span>index 0000000..fd7bac4</span><br><span>--- /dev/null</span><br><span>+++ b/payloads/external/LinuxBoot/arm64/defconfig</span><br><span>@@ -0,0 +1,184 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_SWAP is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SYSVIPC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_NO_HZ_IDLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_HIGH_RES_TIMERS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_IRQ_TIME_ACCOUNTING=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BSD_PROCESS_ACCT=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BSD_PROCESS_ACCT_V3=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_NUMA_BALANCING=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_USER_NS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BLK_DEV_INITRD=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_RD_GZIP is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_RD_BZIP2 is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_RD_LZMA is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_RD_LZO is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_RD_LZ4 is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CC_OPTIMIZE_FOR_SIZE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_KALLSYMS_ALL=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_COMPAT_BRK is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_JUMP_LABEL=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_BLK_DEBUG_FS is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_IOSCHED_DEADLINE is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_IOSCHED_CFQ is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_MQ_IOSCHED_DEADLINE is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_MQ_IOSCHED_KYBER is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARCH_THUNDER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARCH_THUNDER2=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARCH_UNIPHIER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARCH_VEXPRESS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM64_VA_BITS_48=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SCHED_MC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_NR_CPUS=8</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_HOTPLUG_CPU=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_NUMA=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_PREEMPT=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_COMPACTION is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_KSM=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CMA=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SECCOMP=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_ARM64_VHE is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_EFI is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_BINFMT_SCRIPT is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_SUSPEND is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CPU_IDLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM_CPUIDLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DEVTMPFS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DEVTMPFS_MOUNT=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_FIRMWARE_IN_KERNEL is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DMA_CMA=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BRCMSTB_GISB_ARB=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_BLK_DEV is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SRAM=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SCSI=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_SCSI_PROC_FS is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BLK_DEV_SD=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SCSI_SAS_LIBSAS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_INPUT_POLLDEV=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_INPUT_EVDEV=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_KEYBOARD_GPIO=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_KEYBOARD_CROS_EC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_INPUT_MISC=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_SERIO_SERPORT is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIO_AMBAKMI=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_LEGACY_PTY_COUNT=16</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250_CONSOLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250_EXTENDED=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250_SHARE_IRQ=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250_DW=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_8250_UNIPHIER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_OF_PLATFORM=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_AMBA_PL011=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_XILINX_PS_UART=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SERIAL_DEV_BUS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_VIRTIO_CONSOLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_CHARDEV=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_MUX=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_MUX_PCA954x=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_DESIGNWARE_PLATFORM=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_RK3X=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_UNIPHIER_F=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_CROS_EC_TUNNEL=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_I2C_SLAVE=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_PINCTRL_UNIPHIER is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_DWAPB=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_PL061=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_UNIPHIER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_XGENE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_PCA953X=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_PCA953X_IRQ=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GPIO_MAX77620=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_POWER_RESET_BRCMSTB=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_POWER_RESET_XGENE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_POWER_RESET_SYSCON=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SYSCON_REBOOT_MODE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_BATTERY_BQ27XXX=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_HWMON is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_CROS_EC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_CROS_EC_I2C=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_HI6421_PMIC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_MAX77620=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_RK808=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MFD_SEC_CORE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_FB=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_FB_ARMCLCD=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_FRAMEBUFFER_CONSOLE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_USB_SUPPORT is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SYNC_FILE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_VIRTIO_BALLOON=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_VIRTIO_MMIO=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_COMMON_CLK_RK808=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_COMMON_CLK_SCPI=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_COMMON_CLK_CS2000_CP=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_COMMON_CLK_S2MPS11=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CLK_QORIQ=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM_TIMER_SP804=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MAILBOX=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM_MHU=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_PLATFORM_MHU=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_IOMMU_SUPPORT is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SOC_BRCMSTB=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_EXTCON=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_EXTCON_USB_GPIO=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_PHY_XGENE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_TEE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_OPTEE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM_SCPI_PROTOCOL=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_ARM_SCPI_POWER_DOMAIN is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GOOGLE_FIRMWARE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GOOGLE_COREBOOT_TABLE_OF=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GOOGLE_VPD=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_MANDATORY_FILE_LOCKING is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_DNOTIFY is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_INOTIFY_USER is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_TMPFS=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_MISC_FILESYSTEMS is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_PRINTK_TIME=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DEBUG_INFO=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DEBUG_FS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MAGIC_SYSRQ=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_DEBUG_KERNEL=y</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_SCHED_DEBUG is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_DEBUG_PREEMPT is not set</span><br><span style="color: hsl(120, 100%, 40%);">+# CONFIG_FTRACE is not set</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_MEMTEST=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_KEYS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SECURITY=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_ECDH=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_CTR=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_ECB=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_CMAC=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_GHASH=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_MD5=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_SHA512=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_ARC4=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_DES=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_ANSI_CPRNG=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ASYMMETRIC_KEY_TYPE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_X509_CERTIFICATE_PARSER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_PKCS7_MESSAGE_PARSER=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_SYSTEM_TRUSTED_KEYRING=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_ARM64_CRYPTO=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_SHA512_ARM64=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_SHA1_ARM64_CE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_SHA2_ARM64_CE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_GHASH_ARM64_CE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_CRC32_ARM64_CE=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_CHACHA20_NEON=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRYPTO_AES_ARM64_BS=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRC16=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRC_T10DIF=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRC_ITU_T=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_CRC7=y</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_LIBCRC32C=y</span><br><span>diff --git a/payloads/external/LinuxBoot/arm64/kernel_fdt.its b/payloads/external/LinuxBoot/arm64/kernel_fdt.its</span><br><span>new file mode 100644</span><br><span>index 0000000..f078395</span><br><span>--- /dev/null</span><br><span>+++ b/payloads/external/LinuxBoot/arm64/kernel_fdt.its</span><br><span>@@ -0,0 +1,75 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2017 Facebook Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Simple U-Boot uImage source file containing a single kernel and FDT blob</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/dts-v1/;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/ {</span><br><span style="color: hsl(120, 100%, 40%);">+ description = "Simple image with single Linux kernel and FDT blob";</span><br><span style="color: hsl(120, 100%, 40%);">+ #address-cells = <1>;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ images {</span><br><span style="color: hsl(120, 100%, 40%);">+              kernel {</span><br><span style="color: hsl(120, 100%, 40%);">+                      description = "Vanilla Linux kernel";</span><br><span style="color: hsl(120, 100%, 40%);">+                       data = /incbin/("vmlinux.bin");</span><br><span style="color: hsl(120, 100%, 40%);">+                     type = "kernel";</span><br><span style="color: hsl(120, 100%, 40%);">+                    arch = "arm64";</span><br><span style="color: hsl(120, 100%, 40%);">+                     os = "linux";</span><br><span style="color: hsl(120, 100%, 40%);">+                       compression = "none";</span><br><span style="color: hsl(120, 100%, 40%);">+                       load = <10000000>;</span><br><span style="color: hsl(120, 100%, 40%);">+                      entry = <10000000>;</span><br><span style="color: hsl(120, 100%, 40%);">+                     hash-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "crc32";</span><br><span style="color: hsl(120, 100%, 40%);">+                     };</span><br><span style="color: hsl(120, 100%, 40%);">+                    hash-2 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "sha1";</span><br><span style="color: hsl(120, 100%, 40%);">+                      };</span><br><span style="color: hsl(120, 100%, 40%);">+                    hash-3 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "sha256";</span><br><span style="color: hsl(120, 100%, 40%);">+                    };</span><br><span style="color: hsl(120, 100%, 40%);">+            };</span><br><span style="color: hsl(120, 100%, 40%);">+            fdt-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                       description = "Flattened Device Tree blob";</span><br><span style="color: hsl(120, 100%, 40%);">+                 data = /incbin/("target.dtb");</span><br><span style="color: hsl(120, 100%, 40%);">+                      type = "flat_dt";</span><br><span style="color: hsl(120, 100%, 40%);">+                   arch = "arm64";</span><br><span style="color: hsl(120, 100%, 40%);">+                     compression = "none";</span><br><span style="color: hsl(120, 100%, 40%);">+                       hash-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "crc32";</span><br><span style="color: hsl(120, 100%, 40%);">+                     };</span><br><span style="color: hsl(120, 100%, 40%);">+                    hash-2 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "sha1";</span><br><span style="color: hsl(120, 100%, 40%);">+                      };</span><br><span style="color: hsl(120, 100%, 40%);">+                    hash-3 {</span><br><span style="color: hsl(120, 100%, 40%);">+                              algo = "sha256";</span><br><span style="color: hsl(120, 100%, 40%);">+                    };</span><br><span style="color: hsl(120, 100%, 40%);">+            };</span><br><span style="color: hsl(120, 100%, 40%);">+            ramdisk-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                        description = "Compressed Initramfs";</span><br><span style="color: hsl(120, 100%, 40%);">+                        data = /incbin/("initramfs.cpio.xz");</span><br><span style="color: hsl(120, 100%, 40%);">+                        type = "ramdisk";</span><br><span style="color: hsl(120, 100%, 40%);">+                        arch = "arm64";</span><br><span style="color: hsl(120, 100%, 40%);">+                        os = "linux";</span><br><span style="color: hsl(120, 100%, 40%);">+                        compression = "none";</span><br><span style="color: hsl(120, 100%, 40%);">+                        load = <00000000>;</span><br><span style="color: hsl(120, 100%, 40%);">+                        entry = <00000000>;</span><br><span style="color: hsl(120, 100%, 40%);">+                        hash-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                                algo = "sha1";</span><br><span style="color: hsl(120, 100%, 40%);">+                        };</span><br><span style="color: hsl(120, 100%, 40%);">+                        hash-2 {</span><br><span style="color: hsl(120, 100%, 40%);">+                                algo = "sha256";</span><br><span style="color: hsl(120, 100%, 40%);">+                        };</span><br><span style="color: hsl(120, 100%, 40%);">+                };</span><br><span style="color: hsl(120, 100%, 40%);">+    };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  configurations {</span><br><span style="color: hsl(120, 100%, 40%);">+              default = "conf-1";</span><br><span style="color: hsl(120, 100%, 40%);">+         conf-1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                      description = "Boot Linux kernel with FDT blob and u-root";</span><br><span style="color: hsl(120, 100%, 40%);">+                 kernel = "kernel";</span><br><span style="color: hsl(120, 100%, 40%);">+                  fdt = "fdt-1";</span><br><span style="color: hsl(120, 100%, 40%);">+                      ramdisk = "ramdisk-1";</span><br><span style="color: hsl(120, 100%, 40%);">+              };</span><br><span style="color: hsl(120, 100%, 40%);">+    };</span><br><span style="color: hsl(120, 100%, 40%);">+};</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 9b0e568..4c2994c 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>@@ -52,8 +52,11 @@</span><br><span>                 done;,true;) \</span><br><span>       fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-$(project_dir)/initramfs.cpio.xz: checkout</span><br><span style="color: hsl(0, 100%, 40%);">-        cd $(uroot_dir); GOARCH=$(CONFIG_LINUXBOOT_ARCH) GOPATH=$(go_path_dir) go build u-root.go</span><br><span style="color: hsl(120, 100%, 40%);">+$(uroot_dir)/u-root: $(uroot_dir)/u-root.go</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "    GO        u-root"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd $(uroot_dir); GOPATH=$(go_path_dir) go build u-root.go</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$(project_dir)/initramfs.cpio.xz: checkout $(uroot_dir)/u-root</span><br><span>  echo "    MAKE       u-root $(CONFIG_LINUXBOOT_UROOT_VERSION)"</span><br><span> ifneq ($(CONFIG_LINUXBOOT_UROOT_COMMANDS),)</span><br><span> ifneq ($(CONFIG_LINUXBOOT_UROOT_FILES),)</span><br><span>diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc</span><br><span>index 3943db9..6ce5f1e 100644</span><br><span>--- a/payloads/external/Makefile.inc</span><br><span>+++ b/payloads/external/Makefile.inc</span><br><span>@@ -33,10 +33,14 @@</span><br><span> endif</span><br><span> </span><br><span> ifeq ($(CONFIG_PAYLOAD_LINUXBOOT),y)</span><br><span style="color: hsl(0, 100%, 40%);">-ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUXBOOT_KERNEL_COMMANDLINE))),)</span><br><span style="color: hsl(120, 100%, 40%);">+  ifeq ($(CONFIG_ARCH_X86),y)</span><br><span style="color: hsl(120, 100%, 40%);">+    ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUXBOOT_KERNEL_COMMANDLINE))),)</span><br><span>       ADDITIONAL_PAYLOAD_CONFIG+=-C $(CONFIG_LINUXBOOT_KERNEL_COMMANDLINE)</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">-ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_PAYLOAD_USERSPACE)</span><br><span style="color: hsl(120, 100%, 40%);">+    endif</span><br><span style="color: hsl(120, 100%, 40%);">+    ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_USERSPACE))),)</span><br><span style="color: hsl(120, 100%, 40%);">+      ADDITIONAL_PAYLOAD_CONFIG+=-I $(strip $(call strip_quotes,$(CONFIG_PAYLOAD_USERSPACE)))</span><br><span style="color: hsl(120, 100%, 40%);">+    endif</span><br><span style="color: hsl(120, 100%, 40%);">+  endif</span><br><span> endif</span><br><span> </span><br><span> ifeq ($(CONFIG_PAYLOAD_LINUX),y)</span><br><span>@@ -253,16 +257,6 @@</span><br><span> </span><br><span> linuxboot:</span><br><span>       $(MAKE) -C payloads/external/LinuxBoot \</span><br><span style="color: hsl(0, 100%, 40%);">-                HOSTCC="$(HOSTCC)" \</span><br><span style="color: hsl(0, 100%, 40%);">-          CC="$(HOSTCC)" \</span><br><span style="color: hsl(0, 100%, 40%);">-              GCC_CC_x86_32=$(GCC_CC_x86_32) \</span><br><span style="color: hsl(0, 100%, 40%);">-                GCC_CC_x86_64=$(GCC_CC_x86_64) \</span><br><span style="color: hsl(0, 100%, 40%);">-                GCC_CC_arm=$(GCC_CC_arm) \</span><br><span style="color: hsl(0, 100%, 40%);">-              GCC_CC_arm64=$(GCC_CC_arm64) \</span><br><span style="color: hsl(0, 100%, 40%);">-          OBJCOPY_x86_32=$(OBJCOPY_x86_32) \</span><br><span style="color: hsl(0, 100%, 40%);">-              OBJCOPY_x86_64=$(OBJCOPY_x86_64) \</span><br><span style="color: hsl(0, 100%, 40%);">-              OBJCOPY_arm=$(OBJCOPY_arm) \</span><br><span style="color: hsl(0, 100%, 40%);">-            OBJCOPY_arm64=$(OBJCOPY_arm64) \</span><br><span>             CPUS=$(CPUS) \</span><br><span>               CONFIG_LINUXBOOT_KERNEL_VERSION=$(CONFIG_LINUXBOOT_KERNEL_VERSION) \</span><br><span>                 CONFIG_LINUXBOOT_KERNEL_CONFIGFILE=$(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) \</span><br><span>@@ -271,7 +265,9 @@</span><br><span>             CONFIG_LINUXBOOT_UROOT_COMMANDS="$(CONFIG_LINUXBOOT_UROOT_COMMANDS)" \</span><br><span>             CONFIG_LINUXBOOT_ARCH=$(CONFIG_LINUXBOOT_ARCH) \</span><br><span>             CONFIG_LINUXBOOT_UROOT=$(CONFIG_LINUXBOOT_UROOT) \</span><br><span style="color: hsl(0, 100%, 40%);">-              CONFIG_LINUXBOOT_UROOT_FILES=$(CONFIG_LINUXBOOT_UROOT_FILES)</span><br><span style="color: hsl(120, 100%, 40%);">+          CONFIG_LINUXBOOT_UROOT_FILES=$(CONFIG_LINUXBOOT_UROOT_FILES) \</span><br><span style="color: hsl(120, 100%, 40%);">+                CONFIG_LINUXBOOT_DTB_FILE=$(CONFIG_LINUXBOOT_DTB_FILE)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> payloads/external/LinuxBoot/linuxboot/kernel-image: linuxboot</span><br><span> payloads/external/LinuxBoot/linuxboot/initramfs.cpio.xz: linuxboot</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/25152">change 25152</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/25152"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I9a0cc248283432fb2384956ca55e687d4127398c </div>
<div style="display:none"> Gerrit-Change-Number: 25152 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com> </div>