Hi Pranav, On Fri, 12 Dec 2025 at 05:50, Pranav Sanwal <[email protected]> wrote: > > 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
* (blank line here) > + * @mem: Current memory node to start search from, or ofnode_null() to get > first node If this is to be exported it should have a fdtdec_ prefix, e.g. fdtdec_next_mem_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 > Regards, Simon

