<p>Marty Plummer would like Marty E. Plummer to <strong>review</strong> this change.</p><p><a href="https://review.coreboot.org/23336">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[WIP] payloads/external/GRUB2: Add ARM support<br><br>Change-Id: Iff0f1ee8dbaf815a60981835d4acb2b7f9769351<br>Signed-off-by: Marty E. Plummer <hanetzer@startmail.com><br>---<br>M payloads/external/GRUB2/Kconfig<br>M payloads/external/GRUB2/Kconfig.name<br>M payloads/external/GRUB2/Makefile<br>M payloads/external/Makefile.inc<br>4 files changed, 48 insertions(+), 9 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/36/23336/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/payloads/external/GRUB2/Kconfig b/payloads/external/GRUB2/Kconfig</span><br><span>index c4edab9..c16118d 100644</span><br><span>--- a/payloads/external/GRUB2/Kconfig</span><br><span>+++ b/payloads/external/GRUB2/Kconfig</span><br><span>@@ -32,6 +32,16 @@</span><br><span>    help</span><br><span>            The commit's SHA-1 or branch name of the revision to use.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+menuconfig GRUB2_EXPERT_OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+ bool "Advanced GRUB configuration options (for devices with small flash)"</span><br><span style="color: hsl(120, 100%, 40%);">+   default n</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   config GRUB2_DEFAULT_MODULES</span><br><span style="color: hsl(120, 100%, 40%);">+          string "Default modules to include in GRUB image" if GRUB2_EXPERT_OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+           default "ahci pata ehci uhci ohci usb_keyboard usbms part_msdos ext2 fat at_keyboard part_gpt usbserial_usbdebug cbfs"</span><br><span style="color: hsl(120, 100%, 40%);">+              help</span><br><span style="color: hsl(120, 100%, 40%);">+            Space-separated list of modules to pre-load</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> config GRUB2_EXTRA_MODULES</span><br><span>        string "Extra modules to include in GRUB image"</span><br><span>    help</span><br><span>@@ -71,4 +81,10 @@</span><br><span>    help</span><br><span>           The path of the GRUB2 runtime configuration file to be added to CBFS.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+config GRUB2_ARM_DTB_FILE</span><br><span style="color: hsl(120, 100%, 40%);">+        string "Path of dtb file to embed in GRUB image"</span><br><span style="color: hsl(120, 100%, 40%);">+    depends on ARCH_ARM || ARCH_ARM64</span><br><span style="color: hsl(120, 100%, 40%);">+     help</span><br><span style="color: hsl(120, 100%, 40%);">+    The path of the DTB file to pass to grub-mkimage</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> endif</span><br><span>diff --git a/payloads/external/GRUB2/Kconfig.name b/payloads/external/GRUB2/Kconfig.name</span><br><span>index cf94bb4..fe60d76 100644</span><br><span>--- a/payloads/external/GRUB2/Kconfig.name</span><br><span>+++ b/payloads/external/GRUB2/Kconfig.name</span><br><span>@@ -1,6 +1,6 @@</span><br><span> config PAYLOAD_GRUB2</span><br><span>         bool "GRUB2"</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_ARM</span><br><span>      help</span><br><span>           Select this option if you want to build a coreboot image</span><br><span>     with a GRUB2 payload. If you don't know what this is</span><br><span>diff --git a/payloads/external/GRUB2/Makefile b/payloads/external/GRUB2/Makefile</span><br><span>index e2d8293..fe53f15 100644</span><br><span>--- a/payloads/external/GRUB2/Makefile</span><br><span>+++ b/payloads/external/GRUB2/Makefile</span><br><span>@@ -24,10 +24,21 @@</span><br><span>                        git branch -f $(NAME-y) $(TAG-y) && \</span><br><span>                        git checkout $(NAME-y) || true</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ARCH_TRIPLE=unsupported</span><br><span style="color: hsl(120, 100%, 40%);">+DTB=</span><br><span> ifeq ($(CONFIG_ARCH_X86),y)</span><br><span> ARCH_TRIPLE=i386-linux-gnu</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">-ARCH_TRIPLE=unsupported</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_FORMAT=i386-coreboot</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_ARCH_ARM),y)</span><br><span style="color: hsl(120, 100%, 40%);">+DTB=--dtb=</span><br><span style="color: hsl(120, 100%, 40%);">+ARCH_TRIPLE=arm-eabi</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_VENDOR_EMULATION),y)</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_FORMAT=arm-coreboot-vexpress</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span style="color: hsl(120, 100%, 40%);">+ifeq ($(CONFIG_SOC_ROCKCHIP_RK3288),y)</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_FORMAT=arm-coreboot-veyron</span><br><span style="color: hsl(120, 100%, 40%);">+endif</span><br><span> endif</span><br><span> </span><br><span> grub2/build/config.h: $(CONFIG_DEP) | checkout</span><br><span>@@ -37,7 +48,8 @@</span><br><span>      cd grub2 && ./autogen.sh</span><br><span>     cd grub2/build && ../configure CC="$(HOSTCC)" LD="$(LD)" \</span><br><span>       TARGET_CC="$(CC)" TARGET_OBJCOPY="$(OBJCOPY)" TARGET_STRIP="$(STRIP)" \</span><br><span style="color: hsl(0, 100%, 40%);">-   CFLAGS=-O2 TARGET_CFLAGS=-Os --host=$(ARCH_TRIPLE) \</span><br><span style="color: hsl(120, 100%, 40%);">+  TARGET_AS="$(CC)-as" TARGET_RANLIB="$(CC)-ranlib" \</span><br><span style="color: hsl(120, 100%, 40%);">+       CFLAGS=-O2 TARGET_CFLAGS=-Os --target=$(ARCH_TRIPLE) \</span><br><span>       --with-platform=coreboot --enable-boot-time --disable-werror</span><br><span> </span><br><span> config: grub2/build/config.h checkout</span><br><span>@@ -45,8 +57,15 @@</span><br><span> grub2: config</span><br><span>      echo "    MAKE       GRUB2 $(NAME-y)"</span><br><span>      $(MAKE) -C grub2/build</span><br><span style="color: hsl(0, 100%, 40%);">-  $(MAKE) -C grub2/build default_payload.elf \</span><br><span style="color: hsl(0, 100%, 40%);">-            EXTRA_PAYLOAD_MODULES="$(CONFIG_GRUB2_EXTRA_MODULES)"</span><br><span style="color: hsl(120, 100%, 40%);">+       pkgdatadir=grub2/build ./grub2/build/grub-mkstandalone \</span><br><span style="color: hsl(120, 100%, 40%);">+              --grub-mkimage=./grub2/build/grub-mkimage -O \</span><br><span style="color: hsl(120, 100%, 40%);">+                $(IMAGE_FORMAT) -o grub2/build/default_payload.elf \</span><br><span style="color: hsl(120, 100%, 40%);">+          --modules="$(CONFIG_GRUB2_PRELOAD_MODULES) $(cat build/grub2/grub-core/fs.lst)" \</span><br><span style="color: hsl(120, 100%, 40%);">+           --install-modules="$(CONFIG_GRUB2_DEFAULT_MODULES) $(CONFIG_GRUB2_EXTRA_MODULES)" \</span><br><span style="color: hsl(120, 100%, 40%);">+         --fonts= --themes= --locales --directory=./grub2/build/grub-core/ \</span><br><span style="color: hsl(120, 100%, 40%);">+           /boot/grub/grub.cfg=./grub2/coreboot.cfg $(DTB)$(GRUB2_ARM_DTB_FILE)</span><br><span style="color: hsl(120, 100%, 40%);">+  # $(MAKE) -C grub2/build default_payload.elf \</span><br><span style="color: hsl(120, 100%, 40%);">+        #       EXTRA_PAYLOAD_MODULES="$(CONFIG_GRUB2_EXTRA_MODULES)"</span><br><span> </span><br><span> clean:</span><br><span>        test -f grub2/build/Makefile && $(MAKE) -C grub2/build clean || exit 0</span><br><span>diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc</span><br><span>index 62d8a44..bb07aad 100644</span><br><span>--- a/payloads/external/Makefile.inc</span><br><span>+++ b/payloads/external/Makefile.inc</span><br><span>@@ -159,14 +159,18 @@</span><br><span> grub2: $(obj)/config.h</span><br><span>        $(MAKE) -C payloads/external/GRUB2 \</span><br><span>                         HOSTCC="$(HOSTCC)" \</span><br><span style="color: hsl(0, 100%, 40%);">-                  CC="$(CC_x86_32)" LD="$(LD_x86_32)" \</span><br><span style="color: hsl(0, 100%, 40%);">-                       OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \</span><br><span style="color: hsl(120, 100%, 40%);">+                     CC="$(CC_$(ARCH-ramstage-y))" LD="$(LD_$(ARCH-ramstage-y))" \</span><br><span style="color: hsl(120, 100%, 40%);">+                     OBJCOPY="$(OBJCOPY_$(ARCH-ramstage-y))" STRIP="$(STRIP_$(ARCH-ramstage-y))" \</span><br><span style="color: hsl(120, 100%, 40%);">+                     CONFIG_ARCH_ARM=$(CONFIG_ARCH_ARM) \</span><br><span style="color: hsl(120, 100%, 40%);">+                  CONFIG_ARCH_X86=$(CONFIG_ARCH_X86) \</span><br><span>                         CONFIG_DEP="$(abspath $(obj)/config.h)" \</span><br><span>                  CONFIG_GRUB2_STABLE=$(CONFIG_GRUB2_STABLE) \</span><br><span>                         CONFIG_GRUB2_MASTER=$(CONFIG_GRUB2_MASTER) \</span><br><span>                         CONFIG_GRUB2_REVISION=$(CONFIG_GRUB2_REVISION) \</span><br><span>                     CONFIG_GRUB2_REVISION_ID=$(CONFIG_GRUB2_REVISION_ID) \</span><br><span style="color: hsl(0, 100%, 40%);">-                  CONFIG_GRUB2_EXTRA_MODULES=$(CONFIG_GRUB2_EXTRA_MODULES)</span><br><span style="color: hsl(120, 100%, 40%);">+                      CONFIG_GRUB2_EXTRA_MODULES=$(CONFIG_GRUB2_EXTRA_MODULES) \</span><br><span style="color: hsl(120, 100%, 40%);">+                    CONFIG_SOC_ROCKCHIP_RK3288=$(CONFIG_SOC_ROCKCHIP_RK3288) \</span><br><span style="color: hsl(120, 100%, 40%);">+                    CONFIG_VENDOR_EMULATION=$(CONFIG_VENDOR_EMULATION)</span><br><span> </span><br><span> payloads/external/GRUB2/grub2/build/default_payload.elf: grub2</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23336">change 23336</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/23336"/><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: Iff0f1ee8dbaf815a60981835d4acb2b7f9769351 </div>
<div style="display:none"> Gerrit-Change-Number: 23336 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Marty Plummer <hanetzer@protonmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Marty E. Plummer <hanetzer@startmail.com> </div>