]> git.dujemihanovic.xyz Git - u-boot.git/commit
dm: core: Add the ofnode multi-tree implementation
authorSimon Glass <sjg@chromium.org>
Wed, 7 Sep 2022 02:27:26 +0000 (20:27 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 30 Sep 2022 02:43:43 +0000 (22:43 -0400)
commit92291652b5741647919770c29cae8a2aac56b2bf
tree00a4c98a315009b10ac11079d52d70975d3caeef
parent41b65d68ec324d9c75dcfe6e1b34fef077b4b87a
dm: core: Add the ofnode multi-tree implementation

Add the logic to redirect requests for the device tree through a function
which can look up the tree ID. This works by using the top bits of
ofnode.of_offset to encode a tree.

It is assumed that there will only be a few device trees used at runtime,
typically the control FDT (always tree ID 0) and possibly a separate FDT
to be passed the OS.

The maximum number of device trees supported at runtime is 8, with this
implementation. That would use bits 30:28 of the node-offset value,
meaning that the positive offset range is limited to bits 27:0, versus
30:1 with this feature disabled. That still allows a device tree of up
to 256MB, which should be enough for most FITs. Larger ones can be
supported by using external data with the FIT, or by enabling OF_LIVE.

Update the documentation a little and fix up the comment for
ofnode_valid().

Signed-off-by: Simon Glass <sjg@chromium.org>
doc/develop/driver-model/livetree.rst
drivers/core/ofnode.c
include/dm/ofnode.h