[PATCH v3 0/2] of: populate of_root_node if not set (alternate)

From: Frank Rowand
Date: Thu Feb 23 2023 - 16:34:45 EST


This series is a different implementation to achieve the goals of
https://lore.kernel.org/r/20220623105044.152832-1-clement.leger@xxxxxxxxxxx

In order to apply overlays or create new nodes under the root node, the
kernel expects of_root to be set. On some system where a device-tree was
not provided by firmware (x86 for instance) if CONFIG_OF is enabled,
then we will end up with a null of_root. This series adds support to
create this root node using a builtin dtb and removes the manual
creation of the root node done in unittests.c.

Changes since version 2: (patch 1/2)
- change of __dtb_empty_root_* from "void *" to "uint8_t []"

Changes since version 1: (patch 1/2)
- refresh for 6.2-rc1
- update Signed-off-by
- fix typo in of_fdt.h: s/of_setup/setup_of
- unflatten_device_tree(): validate size in header field dtb_empty_root
that will be used to copy dtb_empty_root
- add Kconfig option to manually select CONFIG_OF_EARLY_FLATTREE

Changes since version 1: (patch 2/2)
- refresh for 6.2-rc1
- update Signed-off-by
- fix formatting error (leading space) in patch comment

Frank Rowand (2):
of: create of_root if no dtb provided
of: unittest: treat missing of_root as error instead of fixing up

drivers/of/Kconfig | 7 ++++++-
drivers/of/Makefile | 2 +-
drivers/of/empty_root.dts | 6 ++++++
drivers/of/fdt.c | 27 ++++++++++++++++++++++++++-
drivers/of/unittest.c | 16 ++++++----------
include/linux/of_fdt.h | 2 ++
init/main.c | 2 ++
7 files changed, 49 insertions(+), 13 deletions(-)
create mode 100644 drivers/of/empty_root.dts

--
Frank Rowand <frowand.list@xxxxxxxxx>