Hi Mario, On 13 October 2017 at 13:21, Mario Six <mario....@gdsys.cc> wrote: > The function dev_read_addr calls ofnode_get_addr_index in the live tree > case, which does not apply bus translations to the address read from the > device tree. This results in illegal addresses on boards that rely on > bus translations being applied. > > Fix this situation by applying bus translations in the live tree case as > well. > > Signed-off-by: Mario Six <mario....@gdsys.cc> > --- > drivers/core/ofnode.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c > index 9123e88425..d7d8f039b9 100644 > --- a/drivers/core/ofnode.c > +++ b/drivers/core/ofnode.c > @@ -215,13 +215,15 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index) > uint flags; > u64 size; > int na; > + __be32 addr; > > prop_val = of_get_address(ofnode_to_np(node), index, &size, > &flags); > if (!prop_val) > return FDT_ADDR_T_NONE; > na = of_n_addr_cells(ofnode_to_np(node)); > - return of_read_number(prop_val, na); > + addr = of_read_number(prop_val, na); > + return of_translate_address(ofnode_to_np(node), &addr);
Should there not be an if (IS_ENABLED(CONFIG_OF_TRANSLATE)) here? > } else { > return fdt_get_base_address(gd->fdt_blob, > ofnode_to_offset(node)); > -- > 2.11.0 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot