mbox series

[v7,0/4] bootconfig: Support embedding a bootconfig in kernel for non initrd boot

Message ID 164871505771.178991.7870442736805590948.stgit@devnote2 (mailing list archive)
Headers show
Series bootconfig: Support embedding a bootconfig in kernel for non initrd boot | expand

Message

Masami Hiramatsu (Google) March 31, 2022, 8:24 a.m. UTC
Hi,

Here are the 7th version of the patchset to enable kernel embedded bootconfig
for non-initrd kernel boot environment. This version renames the Kconfig
options, make the embedded data readonly, fixes some issues.
Here is the previous version [1].

[1] https://lore.kernel.org/all/164870615889.127053.9055569952366814752.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_BOOT_CONFIG_EMBED=y and set the file
path to CONFIG_BOOT_CONFIG_EMBED_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).
The CONFIG_BOOT_CONFIG_EMBED_FILE can take both absolute and relative path.

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

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

This had an issue about incremental build and LTO THIN mode issue because
of using '.incbin' directive in inline asm. Now it is solved by separating
it as an asm file.

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                              |   38 +++++++++++++++---------------
 lib/.gitignore                           |    1 +
 lib/Makefile                             |   10 +++++++-
 lib/bootconfig-data.S                    |   10 ++++++++
 lib/bootconfig.c                         |   13 ++++++++++
 9 files changed, 111 insertions(+), 24 deletions(-)
 create mode 100644 lib/bootconfig-data.S

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