[coreboot-gerrit] Patch set updated for coreboot: payload: Fix broken Linux kernel as payload

Werner Zeh (werner.zeh@siemens.com) gerrit at coreboot.org
Tue May 3 12:23:43 CEST 2016


Werner Zeh (werner.zeh at siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14579

-gerrit

commit 8c786ecaa679958c9975cd83ead344fa01ad7892
Author: Werner Zeh <werner.zeh at siemens.com>
Date:   Tue May 3 09:52:12 2016 +0200

    payload: Fix broken Linux kernel as payload
    
    Commit 785a31d67e8f34065a2483080e4fd7032c3a8aad
    (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 at siemens.com>
---
 Makefile.inc                   | 10 ----------
 payloads/external/Makefile.inc | 10 ++++++++++
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Makefile.inc b/Makefile.inc
index 0fb7a3d..508d0f9 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -806,16 +806,6 @@ $(CONFIG_CBFS_PREFIX)/ramstage-file := $(objcbfs)/ramstage.elf
 $(CONFIG_CBFS_PREFIX)/ramstage-type := stage
 $(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
 $(CONFIG_CBFS_PREFIX)/refcode-file := $(REFCODE_BLOB)
 $(CONFIG_CBFS_PREFIX)/refcode-type := stage
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 5ae9f7e..65b3dd2 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -42,6 +42,16 @@ ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS))),)
       ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
 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
 payload_config-file := $(PAYLOAD_CONFIG)
 payload_config-type := raw



More information about the coreboot-gerrit mailing list