fdt_support: add fdt_update_reserved_memory()
Add API for rockchip pass uboot logo memory info to kernel. Change-Id: Ib3bfadc381efae21359a43654493e8e0f4e67dd0 Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
parent
3f251879bf
commit
3a39dbf874
|
|
@ -523,6 +523,36 @@ int fdt_fixup_memory(void *blob, u64 start, u64 size)
|
|||
return fdt_fixup_memory_banks(blob, &start, &size, 1);
|
||||
}
|
||||
|
||||
int fdt_update_reserved_memory(void *blob, char *name, u64 start, u64 size)
|
||||
{
|
||||
int nodeoffset, len, err;
|
||||
u8 tmp[16]; /* Up to 64-bit address + 64-bit size */
|
||||
|
||||
#if 0
|
||||
/*name is rockchip_logo*/
|
||||
nodeoffset = fdt_find_or_add_subnode(blob, 0, "reserved-memory");
|
||||
if (nodeoffset < 0)
|
||||
return nodeoffset;
|
||||
printf("hjc>>reserved-memory>>%s, nodeoffset:%d\n", __func__, nodeoffset);
|
||||
nodeoffset = fdt_find_or_add_subnode(blob, nodeoffset, name);
|
||||
if (nodeoffset < 0)
|
||||
return nodeoffset;
|
||||
#else
|
||||
nodeoffset = fdt_node_offset_by_compatible(blob, 0, name);
|
||||
if (nodeoffset < 0)
|
||||
debug("Can't find nodeoffset: %d\n", nodeoffset);
|
||||
#endif
|
||||
len = fdt_pack_reg(blob, tmp, &start, &size, 1);
|
||||
err = fdt_setprop(blob, nodeoffset, "reg", tmp, len);
|
||||
if (err < 0) {
|
||||
printf("WARNING: could not set %s %s.\n",
|
||||
"reg", fdt_strerror(err));
|
||||
return err;
|
||||
}
|
||||
|
||||
return nodeoffset;
|
||||
}
|
||||
|
||||
void fdt_fixup_ethernet(void *fdt)
|
||||
{
|
||||
int i = 0, j, prop;
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@ static inline int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[],
|
|||
}
|
||||
#endif
|
||||
|
||||
int fdt_update_reserved_memory(void *blob, char *name, u64 start, u64 size);
|
||||
|
||||
void fdt_fixup_ethernet(void *fdt);
|
||||
int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
|
||||
const void *val, int len, int create);
|
||||
|
|
|
|||
Loading…
Reference in New Issue