mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-10-02 01:20:47 +09:00
fdt: Bring in changes from v1.4.4
This a few minor changes down from upstream since the last sync. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
01cce5fdd0
commit
92688a0993
@ -21,14 +21,14 @@
|
|||||||
*/
|
*/
|
||||||
static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
|
static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
|
||||||
{
|
{
|
||||||
const uint32_t *val;
|
const fdt32_t *val;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
val = fdt_getprop(fdto, fragment, "target", &len);
|
val = fdt_getprop(fdto, fragment, "target", &len);
|
||||||
if (!val)
|
if (!val)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((len != sizeof(*val)) || (*val == (uint32_t)-1))
|
if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
|
||||||
return (uint32_t)-1;
|
return (uint32_t)-1;
|
||||||
|
|
||||||
return fdt32_to_cpu(*val);
|
return fdt32_to_cpu(*val);
|
||||||
@ -99,7 +99,7 @@ static int overlay_get_target(const void *fdt, const void *fdto,
|
|||||||
static int overlay_phandle_add_offset(void *fdt, int node,
|
static int overlay_phandle_add_offset(void *fdt, int node,
|
||||||
const char *name, uint32_t delta)
|
const char *name, uint32_t delta)
|
||||||
{
|
{
|
||||||
const uint32_t *val;
|
const fdt32_t *val;
|
||||||
uint32_t adj_val;
|
uint32_t adj_val;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ static int overlay_update_local_node_references(void *fdto,
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
|
fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
|
||||||
const uint32_t *fixup_val;
|
const fdt32_t *fixup_val;
|
||||||
const char *tree_val;
|
const char *tree_val;
|
||||||
const char *name;
|
const char *name;
|
||||||
int fixup_len;
|
int fixup_len;
|
||||||
@ -234,7 +234,8 @@ static int overlay_update_local_node_references(void *fdto,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < (fixup_len / sizeof(uint32_t)); i++) {
|
for (i = 0; i < (fixup_len / sizeof(uint32_t)); i++) {
|
||||||
uint32_t adj_val, poffset;
|
fdt32_t adj_val;
|
||||||
|
uint32_t poffset;
|
||||||
|
|
||||||
poffset = fdt32_to_cpu(fixup_val[i]);
|
poffset = fdt32_to_cpu(fixup_val[i]);
|
||||||
|
|
||||||
@ -246,9 +247,7 @@ static int overlay_update_local_node_references(void *fdto,
|
|||||||
*/
|
*/
|
||||||
memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
|
memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
|
||||||
|
|
||||||
adj_val = fdt32_to_cpu(adj_val);
|
adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
|
||||||
adj_val += delta;
|
|
||||||
adj_val = cpu_to_fdt32(adj_val);
|
|
||||||
|
|
||||||
ret = fdt_setprop_inplace_namelen_partial(fdto,
|
ret = fdt_setprop_inplace_namelen_partial(fdto,
|
||||||
tree_node,
|
tree_node,
|
||||||
@ -272,7 +271,7 @@ static int overlay_update_local_node_references(void *fdto,
|
|||||||
|
|
||||||
tree_child = fdt_subnode_offset(fdto, tree_node,
|
tree_child = fdt_subnode_offset(fdto, tree_node,
|
||||||
fixup_child_name);
|
fixup_child_name);
|
||||||
if (ret == -FDT_ERR_NOTFOUND)
|
if (tree_child == -FDT_ERR_NOTFOUND)
|
||||||
return -FDT_ERR_BADOVERLAY;
|
return -FDT_ERR_BADOVERLAY;
|
||||||
if (tree_child < 0)
|
if (tree_child < 0)
|
||||||
return tree_child;
|
return tree_child;
|
||||||
@ -356,6 +355,7 @@ static int overlay_fixup_one_phandle(void *fdt, void *fdto,
|
|||||||
{
|
{
|
||||||
const char *symbol_path;
|
const char *symbol_path;
|
||||||
uint32_t phandle;
|
uint32_t phandle;
|
||||||
|
fdt32_t phandle_prop;
|
||||||
int symbol_off, fixup_off;
|
int symbol_off, fixup_off;
|
||||||
int prop_len;
|
int prop_len;
|
||||||
|
|
||||||
@ -381,10 +381,11 @@ static int overlay_fixup_one_phandle(void *fdt, void *fdto,
|
|||||||
if (fixup_off < 0)
|
if (fixup_off < 0)
|
||||||
return fixup_off;
|
return fixup_off;
|
||||||
|
|
||||||
phandle = cpu_to_fdt32(phandle);
|
phandle_prop = cpu_to_fdt32(phandle);
|
||||||
return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
|
return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
|
||||||
name, name_len, poffset,
|
name, name_len, poffset,
|
||||||
&phandle, sizeof(phandle));
|
&phandle_prop,
|
||||||
|
sizeof(phandle_prop));
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -242,7 +242,8 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
memcpy(prop->data, val, len);
|
if (len)
|
||||||
|
memcpy(prop->data, val, len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,9 @@ static struct fdt_errtabent fdt_errtable[] = {
|
|||||||
FDT_ERRTABENT(FDT_ERR_BADVERSION),
|
FDT_ERRTABENT(FDT_ERR_BADVERSION),
|
||||||
FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
|
FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
|
||||||
FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
|
FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
|
||||||
|
FDT_ERRTABENT(FDT_ERR_INTERNAL),
|
||||||
|
FDT_ERRTABENT(FDT_ERR_BADNCELLS),
|
||||||
|
FDT_ERRTABENT(FDT_ERR_BADVALUE),
|
||||||
FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
|
FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
|
||||||
FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
|
FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user