summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2021-08-10 09:21:54 +0200
committerMichal Simek <michal.simek@xilinx.com>2021-08-26 08:08:11 +0200
commit5e1a3be6674ba9945ad28291cb6d8e511db6eb92 (patch)
treed326df8743ac91b544000e9bbd5be5551b2903bf /common
parent1031a11d71d48df0f738d4e4e744d025ce7e7aad (diff)
downloadu-boot-5e1a3be6674ba9945ad28291cb6d8e511db6eb92.tar.gz
u-boot-5e1a3be6674ba9945ad28291cb6d8e511db6eb92.tar.bz2
u-boot-5e1a3be6674ba9945ad28291cb6d8e511db6eb92.zip
fdt_support: Add kernel-doc for fdt_fixup_memory_banks()
Add kernel-doc description for fdt_fixup_memory_banks() because it is implemented in one specific way and this information should be available for others to decide if their SoC conforms to it. If you don't want U-Boot to update your memory DT layout please disable CONFIG_ARCH_FIXUP_FDT_MEMORY. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r--common/fdt_support.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 4341d84bd5..8992ac5d3f 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -420,6 +420,24 @@ static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size,
#else
#define MEMORY_BANKS_MAX 4
#endif
+
+/**
+ * fdt_fixup_memory_banks - Update DT memory node
+ * @blob: Pointer to DT blob
+ * @start: Pointer to memory start addresses array
+ * @size: Pointer to memory sizes array
+ * @banks: Number of memory banks
+ *
+ * Return: 0 on success, negative value on failure
+ *
+ * Based on the passed number of banks and arrays, the function is able to
+ * update existing DT memory nodes to match run time detected/changed memory
+ * configuration. Implementation is handling one specific case with only one
+ * memory node where multiple tuples could be added/updated.
+ * The case where multiple memory nodes with a single tuple (base, size) are
+ * used, this function is only updating the first memory node without removing
+ * others.
+ */
int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks)
{
int err, nodeoffset;