<p>Marty Plummer would like Marty E. Plummer to <strong>review</strong> this change.</p><p><a href="https://review.coreboot.org/23340">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">payloads/external/GRUB2: add arm support<br><br>Certain grub modules are not built when compiled for arm-coreboot as of<br>this moment, so set defaults differently on ARCH_ARM.<br><br>Add the ability to specify a dtb file (required on arm-coreboot for now,<br>added via grub-mkimage and not added to cbfs)<br><br>Set GRUB2 version to HEAD if ARCH_ARM, as the stable release does not<br>support arm-coreboot.<br><br>Change-Id: I37ec1191fede8e333d9571b2fd34353ed38b8fd1<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, 23 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/40/23340/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 757b1c2..64e21e5 100644</span><br><span>--- a/payloads/external/GRUB2/Kconfig</span><br><span>+++ b/payloads/external/GRUB2/Kconfig</span><br><span>@@ -2,6 +2,7 @@</span><br><span> </span><br><span> choice</span><br><span>  prompt "GRUB2 version"</span><br><span style="color: hsl(120, 100%, 40%);">+      default GRUB2_MASTER if ARCH_ARM</span><br><span>     default GRUB2_STABLE</span><br><span> </span><br><span> config GRUB2_STABLE</span><br><span>@@ -38,12 +39,14 @@</span><br><span> </span><br><span>    config GRUB2_DEFAULT_MODULES</span><br><span>                 string "Default modules to include in GRUB image" if GRUB2_EXPERT_OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+           default "configfile echo gzio halt help hexdump linux ls lsmmap memrw minicmd normal password_pbkdf2 reboot regexp search serial syslinuxcfg test" if ARCH_ARM</span><br><span>             default "cbls cbmemc cbtime chain configfile echo gzio halt help hexdump iorw linux linux16 ls lsacpi lsmmap lspci memrw minicmd multiboot normal password_pbkdf2 pcidump reboot regexp search serial setpci syslinuxcfg test xnu"</span><br><span>                 help</span><br><span>                   Space-separated list of modules to include</span><br><span> </span><br><span>     config GRUB2_PRELOAD_MODULES</span><br><span>                 string "Modules to pre-load" if GRUB2_EXPERT_OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+                default "cbfs ehci ext2 fat part_gpt part_msdos usb_keyboard usbms usbserial_usbdebug" if ARCH_ARM</span><br><span>                 default "ahci at_keyboard cbfs ehci ext2 fat ohci part_gpt part_msdos pata uhci usb_keyboard usbms usbserial_usbdebug"</span><br><span>             help</span><br><span>                   Space-separated list of modules to pre-load</span><br><span>@@ -93,4 +96,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</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 d26abc8..7d4745f 100644</span><br><span>--- a/payloads/external/GRUB2/Makefile</span><br><span>+++ b/payloads/external/GRUB2/Makefile</span><br><span>@@ -25,10 +25,15 @@</span><br><span>                        git checkout $(NAME-y) || true</span><br><span> </span><br><span> 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> IMAGE_FORMAT=i386-coreboot</span><br><span> 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%);">+endif</span><br><span> </span><br><span> grub2/build/config.h: $(CONFIG_DEP) | checkout</span><br><span>  echo "    CONFIG     GRUB2 $(NAME-y)"</span><br><span>@@ -37,6 +42,7 @@</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(120, 100%, 40%);">+ TARGET_AS="$(CC)-as" TARGET_RANLIB="$(CC)-ranlib" \</span><br><span>      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>diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc</span><br><span>index 7777aea..ff2bd65 100644</span><br><span>--- a/payloads/external/Makefile.inc</span><br><span>+++ b/payloads/external/Makefile.inc</span><br><span>@@ -156,13 +156,18 @@</span><br><span> </span><br><span> # Grub</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ifneq ($(strip $(CONFIG_GRUB2_ARM_DTB_FILE)),)</span><br><span style="color: hsl(120, 100%, 40%);">+CONFIG_GRUB2_ARM_DTB_FILE := ../../../$(CONFIG_GRUB2_ARM_DTB_FILE)</span><br><span style="color: hsl(120, 100%, 40%);">+endif</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>                         CONFIG_ARCH_X86=$(CONFIG_ARCH_X86) \</span><br><span>                         CONFIG_DEP="$(abspath $(obj)/config.h)" \</span><br><span style="color: hsl(120, 100%, 40%);">+                   CONFIG_GRUB2_ARM_DTB_FILE=$(CONFIG_GRUB2_ARM_DTB_FILE) \</span><br><span>                     CONFIG_GRUB2_PRELOAD_MODULES=$(CONFIG_GRUB2_PRELOAD_MODULES) \</span><br><span>                       CONFIG_GRUB2_DEFAULT_MODULES=$(CONFIG_GRUB2_DEFAULT_MODULES) \</span><br><span>                       CONFIG_GRUB2_FS_MODULES=$(CONFIG_GRUB2_FS_MODULES) \</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23340">change 23340</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/23340"/><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: I37ec1191fede8e333d9571b2fd34353ed38b8fd1 </div>
<div style="display:none"> Gerrit-Change-Number: 23340 </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>