summaryrefslogtreecommitdiff
path: root/payloads
diff options
context:
space:
mode:
authorPaul Menzel <pmenzel@molgen.mpg.de>2021-07-08 19:16:17 +0200
committerNico Huber <nico.h@gmx.de>2021-07-19 09:20:52 +0000
commitf72568cad31092df5c3bc7a87536b84ab178cfa7 (patch)
tree8c97e7579a7fcdd717708fbf42fdf6c328d44a80 /payloads
parent750200020ab82f3be2bfda959bd3280a46b7a1cc (diff)
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>
Diffstat (limited to 'payloads')
-rw-r--r--payloads/external/FILO/Kconfig28
-rw-r--r--payloads/external/FILO/Makefile7
-rw-r--r--payloads/external/Makefile.inc5
3 files changed, 39 insertions, 1 deletions
diff --git a/payloads/external/FILO/Kconfig b/payloads/external/FILO/Kconfig
index 1cf171d2cf..7dc14edb9b 100644
--- a/payloads/external/FILO/Kconfig
+++ b/payloads/external/FILO/Kconfig
@@ -16,6 +16,34 @@ config FILO_MASTER
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 90895572a9..e2fec369e8 100644
--- a/payloads/external/FILO/Makefile
+++ b/payloads/external/FILO/Makefile
@@ -33,6 +33,13 @@ config: libpayload
#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 3d465537a1..f977079907 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -167,7 +167,10 @@ filo:
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