Add Kconfig options for Linux as payload

These allow to define a kernel image, initrd and command line.

Change-Id: I40155b812728a176b6d15871e1e6c96e4ad693c8
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/3893
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
Patrick Georgi 2013-08-31 08:26:52 +02:00
parent 2f39eae41d
commit 16ae95c4bc
2 changed files with 45 additions and 0 deletions

View File

@ -539,6 +539,16 @@ config PAYLOAD_ELF
You will be able to specify the location and file name of the You will be able to specify the location and file name of the
payload image later. payload image later.
config PAYLOAD_LINUX
bool "A Linux payload"
help
Select this option if you have a Linux bzImage which coreboot
should run as soon as the basic hardware initialization
is completed.
You will be able to specify the location and file name of the
payload image later.
config PAYLOAD_SEABIOS config PAYLOAD_SEABIOS
bool "SeaBIOS" bool "SeaBIOS"
depends on ARCH_X86 depends on ARCH_X86
@ -616,6 +626,13 @@ config PAYLOAD_FILE
help help
The path and filename of the ELF executable file to use as payload. The path and filename of the ELF executable file to use as payload.
config PAYLOAD_FILE
string "Linux path and filename"
depends on PAYLOAD_LINUX
default "bzImage"
help
The path and filename of the bzImage kernel to use as payload.
config PAYLOAD_FILE config PAYLOAD_FILE
depends on PAYLOAD_SEABIOS depends on PAYLOAD_SEABIOS
default "$(obj)/seabios/out/bios.bin.elf" default "$(obj)/seabios/out/bios.bin.elf"
@ -640,6 +657,20 @@ config COMPRESSED_PAYLOAD_LZMA
In order to reduce the size payloads take up in the ROM chip In order to reduce the size payloads take up in the ROM chip
coreboot can compress them using the LZMA algorithm. coreboot can compress them using the LZMA algorithm.
config LINUX_COMMAND_LINE
string "Linux command line"
depends on PAYLOAD_LINUX
default ""
help
A command line to add to the Linux kernel.
config LINUX_INITRD
string "Linux initrd"
depends on PAYLOAD_LINUX
default ""
help
An initrd image to add to the Linux kernel.
endmenu endmenu
menu "Debugging" menu "Debugging"

View File

@ -74,6 +74,16 @@ $(obj)/coreboot.pre1: $(CBFSTOOL)
mv $(obj)/coreboot.rom $@ mv $(obj)/coreboot.rom $@
endif endif
ifeq ($(CONFIG_PAYLOAD_LINUX),y)
LINUX_ADDITIONAL_CONFIG:=
ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),)
LINUX_ADDITIONAL_CONFIG+=-C $(CONFIG_LINUX_COMMAND_LINE)
endif
ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD))),)
LINUX_ADDITIONAL_CONFIG+=-I $(CONFIG_LINUX_INITRD)
endif
endif
$(obj)/coreboot.rom: $(obj)/coreboot.pre $(objcbfs)/coreboot_ram.elf $(CBFSTOOL) $(call strip_quotes,$(COREBOOT_ROM_DEPENDENCIES)) $$(INTERMEDIATE) $$(VBOOT_STUB_ELF) $(obj)/coreboot.rom: $(obj)/coreboot.pre $(objcbfs)/coreboot_ram.elf $(CBFSTOOL) $(call strip_quotes,$(COREBOOT_ROM_DEPENDENCIES)) $$(INTERMEDIATE) $$(VBOOT_STUB_ELF)
@printf " CBFS $(subst $(obj)/,,$(@))\n" @printf " CBFS $(subst $(obj)/,,$(@))\n"
cp $(obj)/coreboot.pre $@.tmp cp $(obj)/coreboot.pre $@.tmp
@ -85,6 +95,10 @@ ifeq ($(CONFIG_PAYLOAD_ELF),y)
@printf " PAYLOAD $(CONFIG_PAYLOAD_FILE) (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n" @printf " PAYLOAD $(CONFIG_PAYLOAD_FILE) (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG) $(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif endif
ifeq ($(CONFIG_PAYLOAD_LINUX),y)
@printf " PAYLOAD $(CONFIG_PAYLOAD_FILE) (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG) $(LINUX_ADDITIONAL_CONFIG)
endif
ifeq ($(CONFIG_PAYLOAD_SEABIOS),y) ifeq ($(CONFIG_PAYLOAD_SEABIOS),y)
@printf " PAYLOAD SeaBIOS (internal, compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n" @printf " PAYLOAD SeaBIOS (internal, compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG) $(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)