summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPranav Sanwal <[email protected]>2026-01-29 17:30:20 +0530
committerMichal Simek <[email protected]>2026-02-13 08:16:24 +0100
commit7105f8f2958b23823388ac4963caffeed5fe607c (patch)
tree54720f1ecf3bc6d50c6798f5eb76640d5bee2a78 /include
parent350ca5a90ba012734f14a599665398810bc84449 (diff)
fdtdec: Add declaration for get_next_memory_node() helper
Add get_next_memory_node() function declaration to fdtdec.h to support iterating through multiple memory nodes in device tree. This function is used to enumerate memory banks when the system has non-contiguous or multiple memory regions defined with device_type = "memory". The function implementation already exists in lib/fdtdec.c (lines 1298-1305) but was missing the public declaration in the header file. This patch adds the declaration and includes dm/ofnode_decl.h for the ofnode type definition. This is needed for platforms that require early memory enumeration before standard fdtdec_setup_memory_banksize() is called, particularly for dynamic MMU page table size calculation based on actual DRAM configuration. Signed-off-by: Pranav Sanwal <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'include')
-rw-r--r--include/fdtdec.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/fdtdec.h b/include/fdtdec.h
index d9fcd037ed2..4e09f9d718c 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -16,6 +16,7 @@
#include <linux/libfdt.h>
#include <pci.h>
+#include <dm/ofnode_decl.h>
/*
* Support for 64bit fdt addresses.
@@ -199,6 +200,29 @@ struct fdtdec_phandle_args {
};
/**
+ * fdtdec_get_next_memory_node() - Get the next enabled memory node from device tree
+ *
+ * @mem: Current memory node to start search from, or ofnode_null() to get first node
+ *
+ * This function iterates through device tree nodes with device_type = "memory"
+ * property, automatically skipping disabled nodes (status != "okay").
+ *
+ * It is used to enumerate multiple memory regions when the system has
+ * non-contiguous or multiple memory banks defined in the device tree.
+ * The function continues searching from the given node onwards, looking
+ * for the next node with the "memory" device_type property and checking
+ * its status property.
+ *
+ * Can be called multiple times to iterate through all memory nodes.
+ * Pass ofnode_null() on first call, then pass the returned node
+ * on subsequent calls until an invalid node is returned.
+ *
+ * Return: Next valid, enabled memory ofnode, or invalid ofnode if no more
+ * memory nodes exist
+ */
+ofnode fdtdec_get_next_memory_node(ofnode mem);
+
+/**
* fdtdec_parse_phandle_with_args() - Find a node pointed by phandle in a list
*
* This function is useful to parse lists of phandles and their arguments.