mbox series

[v4,0/7] of: populate of_root node if bootloader doesn't

Message ID 20240217010557.2381548-1-sboyd@kernel.org (mailing list archive)
Headers show
Series of: populate of_root node if bootloader doesn't | expand

Message

Stephen Boyd Feb. 17, 2024, 1:05 a.m. UTC
Arch maintainers, please ack/review patches.

This is a resend of a series from Frank last year[1]. I worked in Rob's
review comments to unconditionally call unflatten_device_tree() and
fixup/audit calls to of_have_populated_dt() so that behavior doesn't
change.

I need this series so I can add DT based tests in the clk framework.
Either I can merge it through the clk tree once everyone is happy, or
Rob can merge it through the DT tree and provide some branch so I can
base clk patches on it.

Changes from v3 (https://lore.kernel.org/r/20240202195909.3458162-1-sboyd@kernel.org):
 * Made OF_UNITTEST depend on OF_EARLY_FLATREE
 * Made OF_EARLY_FLATREE depend on absence of arches that don't call
   unflatten_device_tree()
 * Added of_ prefix to dtb_ prefixed KUnit tests
 * Picked up tags

Changes from v2 (https://lore.kernel.org/r/20240130004508.1700335-1-sboyd@kernel.org):
 * Reorder patches to have OF changes largely first
 * No longer modify initial_boot_params if ACPI=y
 * Put arm64 patch back to v1

Changes from v1 (https://lore.kernel.org/r/20240112200750.4062441-1-sboyd@kernel.org):
 * x86 patch included
 * arm64 knocks out initial dtb if acpi is in use
 * keep Kconfig hidden but def_bool enabled otherwise

Changes from Frank's series[1]:
 * Add a DTB loaded kunit test
 * Make of_have_populated_dt() return false if the DTB isn't from the
   bootloader
 * Architecture calls made unconditional so that a root node is always
   made

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

Stephen Boyd (5):
  of: Always unflatten in unflatten_and_copy_device_tree()
  um: Unconditionally call unflatten_device_tree()
  x86/of: Unconditionally call unflatten_and_copy_device_tree()
  arm64: Unconditionally call unflatten_device_tree()
  of: Add KUnit test to confirm DTB is loaded

 arch/arm64/kernel/setup.c    |  3 +-
 arch/um/kernel/dtb.c         | 14 ++++----
 arch/x86/kernel/devicetree.c | 24 +++++++-------
 drivers/of/.kunitconfig      |  3 ++
 drivers/of/Kconfig           | 14 ++++++--
 drivers/of/Makefile          |  4 ++-
 drivers/of/empty_root.dts    |  6 ++++
 drivers/of/fdt.c             | 64 +++++++++++++++++++++++++++---------
 drivers/of/of_test.c         | 57 ++++++++++++++++++++++++++++++++
 drivers/of/platform.c        |  3 --
 drivers/of/unittest.c        | 16 +++------
 include/linux/of.h           | 25 ++++++++------
 12 files changed, 168 insertions(+), 65 deletions(-)
 create mode 100644 drivers/of/.kunitconfig
 create mode 100644 drivers/of/empty_root.dts
 create mode 100644 drivers/of/of_test.c

[1] https://lore.kernel.org/r/20230317053415.2254616-1-frowand.list@gmail.com

base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d

Comments

Rob Herring March 8, 2024, 7:57 p.m. UTC | #1
On Fri, Feb 16, 2024 at 05:05:49PM -0800, Stephen Boyd wrote:
> Arch maintainers, please ack/review patches.
> 
> This is a resend of a series from Frank last year[1]. I worked in Rob's
> review comments to unconditionally call unflatten_device_tree() and
> fixup/audit calls to of_have_populated_dt() so that behavior doesn't
> change.
> 
> I need this series so I can add DT based tests in the clk framework.
> Either I can merge it through the clk tree once everyone is happy, or
> Rob can merge it through the DT tree and provide some branch so I can
> base clk patches on it.
> 
> Changes from v3 (https://lore.kernel.org/r/20240202195909.3458162-1-sboyd@kernel.org):
>  * Made OF_UNITTEST depend on OF_EARLY_FLATREE
>  * Made OF_EARLY_FLATREE depend on absence of arches that don't call
>    unflatten_device_tree()
>  * Added of_ prefix to dtb_ prefixed KUnit tests
>  * Picked up tags
> 
> Changes from v2 (https://lore.kernel.org/r/20240130004508.1700335-1-sboyd@kernel.org):
>  * Reorder patches to have OF changes largely first
>  * No longer modify initial_boot_params if ACPI=y
>  * Put arm64 patch back to v1
> 
> Changes from v1 (https://lore.kernel.org/r/20240112200750.4062441-1-sboyd@kernel.org):
>  * x86 patch included
>  * arm64 knocks out initial dtb if acpi is in use
>  * keep Kconfig hidden but def_bool enabled otherwise
> 
> Changes from Frank's series[1]:
>  * Add a DTB loaded kunit test
>  * Make of_have_populated_dt() return false if the DTB isn't from the
>    bootloader
>  * Architecture calls made unconditional so that a root node is always
>    made
> 
> Frank Rowand (2):
>   of: Create of_root if no dtb provided by firmware
>   of: unittest: treat missing of_root as error instead of fixing up
> 
> Stephen Boyd (5):
>   of: Always unflatten in unflatten_and_copy_device_tree()
>   um: Unconditionally call unflatten_device_tree()
>   x86/of: Unconditionally call unflatten_and_copy_device_tree()
>   arm64: Unconditionally call unflatten_device_tree()
>   of: Add KUnit test to confirm DTB is loaded

I've applied the series minus the arm64 patch. It's only needed if 
anyone cares about this working on arm64 ACPI systems. That can be delt 
with separately.

Rob