]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation
authorJonas Karlman <jonas@kwiboo.se>
Sun, 20 Aug 2023 22:03:18 +0000 (22:03 +0000)
committerSimon Glass <sjg@chromium.org>
Sat, 23 Sep 2023 18:31:25 +0000 (12:31 -0600)
Nodes with bootph-pre-sram/ram props are bound in multiple phases:
1. At TPL (bootph-pre-sram) or SPL (bootph-pre-ram) phase
2. At U-Boot proper pre-relocation phase
3. At U-Boot proper normal phase

However the binding and U-Boot Driver Model documentation indicate that
only nodes marked with bootph-all or bootph-some-ram should be bound in
the U-Boot proper pre-relocation phase.

Change ofnode_pre_reloc to report a node with bootph-pre-ram/sram prop
with a pre-reloc status only after U-Boot proper pre-relocation phase.
Also update the ofnode_pre_reloc documentation to closer reflect the
binding and driver model documentation.

This changes behavior of what nodes are bound in the U-Boot proper
pre-relocation phase. Change to bootph-all or add bootph-some-ram prop
to restore prior behavior.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/core/ofnode.c
include/dm/ofnode.h

index ff0a5b5164f4a23e9ebd4e333837de0510a775c7..2cafa7bca5b357f4876f0c6b3df1156680da960c 100644 (file)
@@ -1383,7 +1383,7 @@ bool ofnode_pre_reloc(ofnode node)
         */
        if (ofnode_read_bool(node, "bootph-pre-ram") ||
            ofnode_read_bool(node, "bootph-pre-sram"))
-               return true;
+               return gd->flags & GD_FLG_RELOC;
 
        if (IS_ENABLED(CONFIG_OF_TAG_MIGRATE)) {
                /* detect and handle old tags */
index 06ea68e81c57142db211b1e24c2384b6045a35e6..06c969c61fe86965e9b524d1c399e94bfaddd47b 100644 (file)
@@ -1211,15 +1211,15 @@ int ofnode_read_simple_size_cells(ofnode node);
  * determine if a node was bound in one of SPL/TPL stages.
  *
  * There are 4 settings currently in use
- * - bootph-some-ram: U-Boot proper pre-relocation only
+ * - bootph-some-ram: U-Boot proper pre-relocation phase
  * - bootph-all: all phases
  * Existing platforms only use it to indicate nodes needed in
  * SPL. Should probably be replaced by bootph-pre-ram for new platforms.
- * - bootph-pre-ram: SPL and U-Boot pre-relocation
- * - bootph-pre-sram: TPL and U-Boot pre-relocation
+ * - bootph-pre-ram: SPL phase
+ * - bootph-pre-sram: TPL phase
  *
  * @node: node to check
- * Return: true if node is needed in SPL/TL, false otherwise
+ * Return: true if node should be or was bound, false otherwise
  */
 bool ofnode_pre_reloc(ofnode node);