
On 04.05.21 22:01, Dario Binacchi wrote:
Hi Jan,
Il 04/05/2021 17:26 Simon Glass sjg@chromium.org ha scritto:
Hi Jan,
On Sun, 2 May 2021 at 01:53, Jan Kiszka jan.kiszka@web.de wrote:
Hi,
I'm trying to make some sense of ofnode_get_addr_size() in order to fix [1] properly.
First, the documentation if this functions says "This does no address translation". But the node-pointer path happily calls of_translate_address(), as the result of a6a45cd32539. For not offset-bases path, it calls fdtdec_get_addr_size() which does no translation.
Related to [1]: The node-pointer path cleanly calls of_n_addr/size_cells() in order to retrieve the configured number of cells. But the offset-based path simply calls fdtdec_get_addr_size() which assumes that the number of cells is derived from the physical address width of that platform.
So, what is that functions actually supposed to do?
+Dario Binacchi +Mario Six
I suspect the code has got ahead of the docs.
d64b9cdcd47 fdt: translate address if #size-cells = <0>
I submitted a patch to revert the commit: https://patchwork.ozlabs.org/project/uboot/patch/20210501150527.10273-6-dari...
But of_translate_address is still part of ofnode_get_addr_size, just called under less conditions.
And that is only one of the inconsistencies, at least as it looks to me.
Jan