diff --git a/include/rom.sh b/include/rom.sh
index 8982138045f3a5f313bc21abe66ab5a1990fe803..29741df509e4486c95ff94cea42f543e26ab35b8 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -126,7 +126,9 @@ add_seabios()
 	[ "$payload_memtest" = "y" ] && cbfs "$tmprom" \
 	    "elf/memtest86plus/memtest.bin" img/memtest
 
-	cprom && [ "$payload_grub" = "y" ] && pname="seagrub" && add_grub; :
+	[ "$payload_grub" = "y" ] && add_grub
+
+	cprom && [ "$payload_grub" = "y" ] && pname="seagrub" && mkseagrub; :
 }
 
 add_grub()
@@ -135,6 +137,10 @@ add_grub()
 	printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \
 	    > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk"
 	cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw
+}
+
+mkseagrub()
+{
 	cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
 	for keymap in config/data/grub/keymap/*.gkb; do
 		[ -f "$keymap" ] || continue