public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH] pstore: Use root address-cells/size-cells as defaults for reserved-memory
@ 2023-08-26 12:16 Andrey Skvortsov
  2023-08-26 13:10 ` Heinrich Schuchardt
  2023-10-24 23:16 ` Tom Rini
  0 siblings, 2 replies; 6+ messages in thread
From: Andrey Skvortsov @ 2023-08-26 12:16 UTC (permalink / raw)
  To: Jernej Skrabec, Samuel Holland, Jarrah Gosbell, Arnaud Ferraris,
	Pavel Machek, Andre Przywara, u-boot, Detlev Casanova,
	Frédéric Danis
  Cc: Andrey Skvortsov

u-boot adds reserve-memory node, if it's missing, with following
properties:

```
    reserved-memory {
         #address-cells = <2>;
         #size-cells = <2>;
         ranges;
    }
```

But with these default address-cells and size-cells values, pstore
isn't working on A64. Root node for A64 defines 'address-cells' and
'size-cells' as 1.

dtc complains if reserved-memory has different address-cells and
size-cells.

```
     Warning (ranges_format): /reserved-memory:ranges: empty "ranges"
     property but its #address-cells (2) differs from / (1)
```

This patch takes into account address-cells and size-cells of the root
node and uses them as values for new reserved-memory node.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
---
 cmd/pstore.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/cmd/pstore.c b/cmd/pstore.c
index cd6f6feb2f..9795eea2db 100644
--- a/cmd/pstore.c
+++ b/cmd/pstore.c
@@ -486,6 +486,8 @@ void fdt_fixup_pstore(void *blob)
 {
 	char node[32];
 	int  nodeoffset;	/* node offset from libfdt */
+	u32 addr_cells_root;
+	u32 size_cells_root;
 	u32 addr_cells;
 	u32 size_cells;
 
@@ -495,6 +497,8 @@ void fdt_fixup_pstore(void *blob)
 		log_err("fdt_path_offset() returned %s\n", fdt_strerror(nodeoffset));
 		return;
 	}
+	addr_cells_root = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#address-cells", 2);
+	size_cells_root = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#size-cells", 2);
 
 	nodeoffset = fdt_find_or_add_subnode(blob, nodeoffset, "reserved-memory");
 	if (nodeoffset < 0) {
@@ -503,8 +507,10 @@ void fdt_fixup_pstore(void *blob)
 		return;
 	}
 
-	addr_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#address-cells", 2);
-	size_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#size-cells", 2);
+	addr_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0,
+						  "#address-cells", addr_cells_root);
+	size_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0,
+						  "#size-cells", size_cells_root);
 	fdt_setprop_u32(blob, nodeoffset, "#address-cells", addr_cells);
 	fdt_setprop_u32(blob, nodeoffset, "#size-cells", size_cells);
 
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-10-24 23:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-26 12:16 [PATCH] pstore: Use root address-cells/size-cells as defaults for reserved-memory Andrey Skvortsov
2023-08-26 13:10 ` Heinrich Schuchardt
2023-08-26 18:41   ` Andre Przywara
2023-10-16 12:23     ` Andrey Skvortsov
2023-08-26 20:06   ` Andrey Skvortsov
2023-10-24 23:16 ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox