Weirdness of ofnode_get_addr_size()

Jan Kiszka jan.kiszka at web.de
Sun May 2 09:53:36 CEST 2021


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?

Jan

[1] https://www.mail-archive.com/u-boot@lists.denx.de/msg405446.html


More information about the U-Boot mailing list