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);
|
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)
|
void fdt_fixup_ethernet(void *fdt)
|
||||||
{
|
{
|
||||||
int i = 0, j, prop;
|
int i = 0, j, prop;
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,8 @@ static inline int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[],
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int fdt_update_reserved_memory(void *blob, char *name, u64 start, u64 size);
|
||||||
|
|
||||||
void fdt_fixup_ethernet(void *fdt);
|
void fdt_fixup_ethernet(void *fdt);
|
||||||
int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
|
int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
|
||||||
const void *val, int len, int create);
|
const void *val, int len, int create);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue