payload: Fix broken Linux kernel as payload
Commit 785a31d67e
(Makefile.inc: Move payload code to payloads/) breaks the usage of
Linux kernel as payload. The reason for it is that cbfs-files-y is
evaluated before payloads/external/Makefile.inc is sourced and as a
consequence ADDITIONAL_PAYLOAD_CONFIG is empty when it is used for
payload options. That leads to missing command line and initrd for
the kernel which in turn leads to kernel panic when it boots.
To avoid it, move the code which adds payload to cbfs completely to
payloads/extranal/Makefile.inc. This way, ADDITIONAL_PAYLOAD_CONFIG is
set right before the payload itself is added to cbfs-files-y.
I have tested this patch with a Linux kernel as well as with SeaBIOS as
payload on mc_tcu3 and it works. If someone sees impact to other
payloads just let me know.
Change-Id: I7aad352f8b3fc1fdba1875b12648b07eba14e282
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/14579
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
parent
d9d2102bec
commit
bc2d151b00
10
Makefile.inc
10
Makefile.inc
|
@ -806,16 +806,6 @@ $(CONFIG_CBFS_PREFIX)/ramstage-file := $(objcbfs)/ramstage.elf
|
||||||
$(CONFIG_CBFS_PREFIX)/ramstage-type := stage
|
$(CONFIG_CBFS_PREFIX)/ramstage-type := stage
|
||||||
$(CONFIG_CBFS_PREFIX)/ramstage-compression := $(CBFS_COMPRESS_FLAG)
|
$(CONFIG_CBFS_PREFIX)/ramstage-compression := $(CBFS_COMPRESS_FLAG)
|
||||||
|
|
||||||
cbfs-files-y += $(CONFIG_CBFS_PREFIX)/payload
|
|
||||||
$(CONFIG_CBFS_PREFIX)/payload-file := $(CONFIG_PAYLOAD_FILE)
|
|
||||||
ifeq ($(CONFIG_PAYLOAD_IS_FLAT_BINARY),y)
|
|
||||||
$(CONFIG_CBFS_PREFIX)/payload-type := flat-binary
|
|
||||||
else
|
|
||||||
$(CONFIG_CBFS_PREFIX)/payload-type := payload
|
|
||||||
endif
|
|
||||||
$(CONFIG_CBFS_PREFIX)/payload-compression := $(CBFS_PAYLOAD_COMPRESS_FLAG)
|
|
||||||
$(CONFIG_CBFS_PREFIX)/payload-options := $(ADDITIONAL_PAYLOAD_CONFIG)
|
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_HAVE_REFCODE_BLOB) += $(CONFIG_CBFS_PREFIX)/refcode
|
cbfs-files-$(CONFIG_HAVE_REFCODE_BLOB) += $(CONFIG_CBFS_PREFIX)/refcode
|
||||||
$(CONFIG_CBFS_PREFIX)/refcode-file := $(REFCODE_BLOB)
|
$(CONFIG_CBFS_PREFIX)/refcode-file := $(REFCODE_BLOB)
|
||||||
$(CONFIG_CBFS_PREFIX)/refcode-type := stage
|
$(CONFIG_CBFS_PREFIX)/refcode-type := stage
|
||||||
|
|
|
@ -42,6 +42,16 @@ ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS))),)
|
||||||
ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
|
ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
cbfs-files-y += $(CONFIG_CBFS_PREFIX)/payload
|
||||||
|
$(CONFIG_CBFS_PREFIX)/payload-file := $(CONFIG_PAYLOAD_FILE)
|
||||||
|
ifeq ($(CONFIG_PAYLOAD_IS_FLAT_BINARY),y)
|
||||||
|
$(CONFIG_CBFS_PREFIX)/payload-type := flat-binary
|
||||||
|
else
|
||||||
|
$(CONFIG_CBFS_PREFIX)/payload-type := payload
|
||||||
|
endif
|
||||||
|
$(CONFIG_CBFS_PREFIX)/payload-compression := $(CBFS_PAYLOAD_COMPRESS_FLAG)
|
||||||
|
$(CONFIG_CBFS_PREFIX)/payload-options := $(ADDITIONAL_PAYLOAD_CONFIG)
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
|
cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
|
||||||
payload_config-file := $(PAYLOAD_CONFIG)
|
payload_config-file := $(PAYLOAD_CONFIG)
|
||||||
payload_config-type := raw
|
payload_config-type := raw
|
||||||
|
|
Loading…
Reference in New Issue