Fixes BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD and legal-info
Commit '898245e0 skiboot: Change to BR2_PACKAGE_SKIBOOT from
BR2_TARGET_SKIBOOT' broke the configuration to embed the Kernel
as part of Skiboot.
Additionally, commit '2aff5ba6 Build bootloader kernel seperate from skiboot'
incorrectly assumed that BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD could take the 'n'
value (when it's really just unset when not configured) and introduced a
'linux-rebuild-with-initramfs' dependency that was never exercised (and fails
when building legal-info).
Fixes: 898245e0 skiboot: Change to BR2_PACKAGE_SKIBOOT from BR2_TARGET_SKIBOOT
Fixes: 2aff5ba6 Build bootloader kernel seperate from skiboot
Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
(cherry picked from commit bdfc1ac8b78e0dda794b4552d4c466ad7cb2a264)
Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 01fd3e9..be0d2fe 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -19,11 +19,9 @@
OPENPOWER_PNOR_DEPENDENCIES += ima-catalog
endif
-ifeq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),n)
+ifneq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),y)
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
-OPENPOWER_PNOR_DEPENDENCIES += linux-rebuild-with-initramfs
-else
OPENPOWER_PNOR_DEPENDENCIES += linux
endif
diff --git a/openpower/package/skiboot/0001-build-Fix-linker-script-for-builtin-Kernel.patch b/openpower/package/skiboot/0001-build-Fix-linker-script-for-builtin-Kernel.patch
new file mode 100644
index 0000000..a97d79b
--- /dev/null
+++ b/openpower/package/skiboot/0001-build-Fix-linker-script-for-builtin-Kernel.patch
@@ -0,0 +1,55 @@
+From 6def8ac06ff34b2232de48e5f9bc3a179199a9ad Mon Sep 17 00:00:00 2001
+From: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+Date: Thu, 10 Dec 2020 15:44:55 -0500
+Subject: [PATCH] build: Fix linker script for builtin Kernel
+
+Commit '6b08928d - build/lds: place debug sections according to
+defaults' introduced a DEBUG_SECTIONS macro that is effectivelly
+resetting the location pointer back to zero, making the next section
+(builtin_kernel) collide with the earlier sections.
+
+Fix by moving these sections to the very end.
+
+Error message:
+$ make KERNEL=zImage.epapr
+ [CC] asm/asm-offsets.s
+ [GN] include/asm-offsets.h
+<...>
+ [LD] skiboot.tmp.elf
+ld: section .builtin_kernel LMA [0000000000000000,0000000000285d87]
+ overlaps section .head LMA [0000000000000000,0000000000003897]
+ld: section .naca LMA [0000000000004000,000000000000505f] overlaps
+ section .builtin_kernel LMA [0000000000000000,0000000000285d87]
+make: *** [/skiboot/Makefile.main:333: skiboot.tmp.elf] Error 1
+
+Fixes: 6b08928d - build/lds: place debug sections according to defaults
+Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+---
+ skiboot.lds.S | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/skiboot.lds.S b/skiboot.lds.S
+index 5da6f9d8..5a7f9e31 100644
+--- a/skiboot.lds.S
++++ b/skiboot.lds.S
+@@ -233,8 +233,6 @@ SECTIONS
+
+ ASSERT((HEAP_BASE - SKIBOOT_BASE) >= _end, "Heap collision with image")
+
+- DEBUG_SECTIONS
+-
+ /* Optional kernel image */
+ . = ALIGN(PAGE_SIZE);
+ .builtin_kernel : {
+@@ -243,6 +241,8 @@ SECTIONS
+ __builtin_kernel_end = .;
+ }
+
++ DEBUG_SECTIONS
++
+ /* Discards */
+ /DISCARD/ : {
+ *(.note.GNU-stack)
+--
+2.27.0
+
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index 5f3e258..36639e6 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -27,17 +27,11 @@
OBJCOPY="$(TARGET_OBJCOPY)" OBJDUMP="$(TARGET_OBJDUMP)" \
SIZE="$(TARGET_CROSS)size"
-ifeq ($(BR2_TARGET_SKIBOOT_EMBED_PAYLOAD),y)
-SKIBOOT_MAKE_OPTS += KERNEL="$(BINARIES_DIR)/$(LINUX_IMAGE_NAME)"
-
-ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
-SKIBOOT_DEPENDENCIES += linux-rebuild-with-initramfs
-else
+ifeq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),y)
+SKIBOOT_MAKE_OPTS += KERNEL=$(BINARIES_DIR)/$(LINUX_IMAGE_NAME)
SKIBOOT_DEPENDENCIES += linux
endif
-endif
-
define SKIBOOT_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) SKIBOOT_VERSION=`cat $(SKIBOOT_VERSION_FILE)` \
$(MAKE) $(SKIBOOT_MAKE_OPTS) -C $(@D) all