payloads: FILO: Hook up autoboot options
FILO allows to configure a line to autoboot. Hook this up into
coreboot’s build system.
TEST=Configure coreboot for QEMU i440fx with FILO as payload and
configure:
CONFIG_FILO_MASTER=y
CONFIG_FILO_USE_AUTOBOOT=y
CONFIG_FILO_AUTOBOOT_FILE="hda1:/vmlinuz root=/dev/sda1 console=tty0 console=ttyS0,115200 initrd=hda1:/initrd.img"
CONFIG_FILO_AUTOBOOT_DELAY=5
Boot Debian image with:
qemu-system-x86_64 -bios /dev/shm/coreboot/build/coreboot.rom -L /dev/shm -enable-kvm -smp cpus=2 -m 1G -hda /dev/shm/debian-32.img -serial stdio -net nic -net user,hostfwd=tcp::22222-:22
Change-Id: Id167e9a144bf466da87469108002672b299b702a
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56213
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/payloads/external/FILO/Kconfig b/payloads/external/FILO/Kconfig
index 1cf171d..7dc14ed 100644
--- a/payloads/external/FILO/Kconfig
+++ b/payloads/external/FILO/Kconfig
@@ -16,6 +16,34 @@
endchoice
+config FILO_USE_AUTOBOOT
+ prompt "Use FILO's autoboot"
+ default n
+ bool
+ help
+ Select this option to make FILO autoboot a command line after
+ timeout. This disables the GRUB legacy like interface.
+
+config FILO_AUTOBOOT_FILE
+ string "Configure FILO's autoboot kernel filename and parameters"
+ depends on FILO_USE_AUTOBOOT
+ default "hda1:/vmlinuz root=/dev/hda1 console=tty0 console=ttyS0,115200"
+ help
+ Examples:
+
+ #AUTOBOOT_FILE = "hda1:/vmlinuz root=/dev/sda1 console=tty0 console=ttyS0,115200"
+ #AUTOBOOT_FILE = "mem@0xfff80000"
+ #AUTOBOOT_FILE = "hde1@0"
+ #AUTOBOOT_FILE = "uda1:/vmlinuz.elf"
+ #AUTOBOOT_FILE = "flashb@0x00400000,0x154a00 console=tty0 console=ttyS0,115200"
+
+config FILO_AUTOBOOT_DELAY
+ int "Time in seconds before booting"
+ depends on FILO_USE_AUTOBOOT
+ default 2
+ help
+ Time in seconds before booting AUTOBOOT_FILE.
+
config PAYLOAD_FILE
default "payloads/external/FILO/filo/build/filo.elf"
diff --git a/payloads/external/FILO/Makefile b/payloads/external/FILO/Makefile
index 9089557..e2fec36 100644
--- a/payloads/external/FILO/Makefile
+++ b/payloads/external/FILO/Makefile
@@ -33,6 +33,13 @@
#echo "CONFIG_VGAHOOKS=y" >> filo/.config
# This shows how to force a previously set .config option *off*
#echo "# CONFIG_SMBIOS is not set" >> filo/.config
+ifeq ($(CONFIG_FILO_USE_AUTOBOOT),y)
+ echo "# CONFIG_USE_GRUB is not set" >> filo/.config
+ echo "CONFIG_USE_AUTOBOOT=y" >> filo/.config
+ echo 'CONFIG_AUTOBOOT_FILE="$(CONFIG_FILO_AUTOBOOT_FILE)"' >> filo/.config
+ echo "CONFIG_AUTOBOOT_DELAY=$(CONFIG_FILO_AUTOBOOT_DELAY)" >> filo/.config
+endif
+
$(MAKE) -C filo oldconfig LIBCONFIG_PATH=../../../libpayload
filo: config
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 3d46553..f977079 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -167,7 +167,10 @@
CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \
- CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE)
+ CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE) \
+ CONFIG_FILO_USE_AUTOBOOT=$(CONFIG_FILO_USE_AUTOBOOT) \
+ CONFIG_FILO_AUTOBOOT_FILE=$(CONFIG_FILO_AUTOBOOT_FILE) \
+ CONFIG_FILO_AUTOBOOT_DELAY=$(CONFIG_FILO_AUTOBOOT_DELAY)
payloads/external/FILO/filo/build/filo.elf: filo
payloads/external/FILO/filo/.config: filo