lkml.org 
[lkml]   [2022]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v6 0/4] bootconfig: Support embedding a bootconfig in kernel for non initrd boot
Date
Hi,

Here are the 6th version of the patchset to enable kernel embedded bootconfig
for non-initrd kernel boot environment. This version adds a new patch to use
obj-y instead of lib-y for bootconfig([1/4]) and split the inline asm code into
independent asm file for incremental build with LTO THIN mode issue(*), which
was reported in the previous version [1].

[1] https://lore.kernel.org/all/164847778869.3060675.8115416881394543419.stgit@devnote2/T/#u

You can embed a bootconfig file into the kernel as a default bootconfig,
which will be used if there is no initrd or no bootconfig is attached to initrd.

This needs 2 options: CONFIG_EMBED_BOOT_CONFIG=y and set the file
path to CONFIG_EMBED_BOOT_CONFIG_FILE. Even if you embed the bootconfig file
to the kernel, it will not be enabled unless you pass "bootconfig" kernel
command line option at boot. Moreover, since this is just a "default"
bootconfig, you can override it with a new bootconfig if you attach another
bootconfig to the initrd (if possible).
CONFIG_EMBED_BOOT_CONFIG_FILE can take both absolute and relative path, but
to simplify and make it independent from the build environment, I recommend
you to use an absolute path for that.

This is requested by Padmanabha at the below thread[2];

[2] https://lore.kernel.org/all/20220307184011.GA2570@pswork/T/#u

(*) this issue has been reported to github ClangBuiltLinux project [3]

[3] https://github.com/ClangBuiltLinux/linux/issues/1618

and Nick told me that we can avoid this by disabling LTO on that file.

CFLAGS_REMOVE_<file>.o := $(CC_FLAGS_LTO)

But I chose Masahiro's idea to split the inline asm into an independent
asm file, since that can also simplify the Makefile.
The above mitigation should be applied to kernel/configs.c and kernel/kheaders.c
but that should be another story (maybe LTO bugfix?).


Thank you,

---

Masami Hiramatsu (4):
bootconfig: Make the bootconfig.o as a normal object file
bootconfig: Check the checksum before removing the bootconfig from initrd
bootconfig: Support embedding a bootconfig file in kernel
docs: bootconfig: Add how to embed the bootconfig into kernel


Documentation/admin-guide/bootconfig.rst | 31 +++++++++++++++++++++++++++---
MAINTAINERS | 1 +
include/linux/bootconfig.h | 10 ++++++++++
init/Kconfig | 21 ++++++++++++++++++++
init/main.c | 31 +++++++++++++++---------------
lib/.gitignore | 1 +
lib/Makefile | 10 +++++++++-
lib/bootconfig-data.S | 11 +++++++++++
lib/bootconfig.c | 13 +++++++++++++
9 files changed, 110 insertions(+), 19 deletions(-)
create mode 100644 lib/bootconfig-data.S

--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

\
 
 \ /
  Last update: 2022-03-31 07:56    [W:1.262 / U:0.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site