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@xxxxxxxxxx>