public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/4] bootconfig: Support embedding a bootconfig in kernel for non initrd boot
@ 2022-03-31  5:55 Masami Hiramatsu
  2022-03-31  5:56 ` [PATCH v6 1/4] bootconfig: Make the bootconfig.o as a normal object file Masami Hiramatsu
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2022-03-31  5:55 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Masami Hiramatsu, Padmanabha Srinivasaiah, LKML, Jonathan Corbet,
	linux-doc, Randy Dunlap, Nick Desaulniers, Sami Tolvanen,
	Nathan Chancellor, llvm, Masahiro Yamada,
	Linux Kbuild mailing list

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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-03-31  7:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-31  5:55 [PATCH v6 0/4] bootconfig: Support embedding a bootconfig in kernel for non initrd boot Masami Hiramatsu
2022-03-31  5:56 ` [PATCH v6 1/4] bootconfig: Make the bootconfig.o as a normal object file Masami Hiramatsu
2022-03-31  5:56 ` [PATCH v6 2/4] bootconfig: Check the checksum before removing the bootconfig from initrd Masami Hiramatsu
2022-03-31  5:56 ` [PATCH v6 3/4] bootconfig: Support embedding a bootconfig file in kernel Masami Hiramatsu
2022-03-31  6:27   ` Masahiro Yamada
2022-03-31  6:49     ` Masami Hiramatsu
2022-03-31  6:54       ` Masahiro Yamada
2022-03-31  7:20         ` Masami Hiramatsu
2022-03-31  5:56 ` [PATCH v6 4/4] docs: bootconfig: Add how to embed the bootconfig into kernel Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox