diff options
| author | Pranav Sanwal <[email protected]> | 2026-01-29 17:30:20 +0530 |
|---|---|---|
| committer | Michal Simek <[email protected]> | 2026-02-13 08:16:24 +0100 |
| commit | 7105f8f2958b23823388ac4963caffeed5fe607c (patch) | |
| tree | 54720f1ecf3bc6d50c6798f5eb76640d5bee2a78 /include | |
| parent | 350ca5a90ba012734f14a599665398810bc84449 (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.h | 24 |
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. |
