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]> --- include/fdtdec.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/fdtdec.h b/include/fdtdec.h index d9fcd037ed2..87e97635ce1 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. @@ -198,6 +199,28 @@ struct fdtdec_phandle_args { uint32_t args[MAX_PHANDLE_ARGS]; }; +/** + * 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. + * + * Context: 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 get_next_memory_node(ofnode mem); + /** * fdtdec_parse_phandle_with_args() - Find a node pointed by phandle in a list * -- 2.34.1

