diff options
author | Stephen Warren <swarren@nvidia.com> | 2015-08-06 15:31:02 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-09-15 07:57:13 -0600 |
commit | 02464e386bb5f0a022c121f95ae75cf583759d95 (patch) | |
tree | df285b436346479298805f01ffc4dbe33ace1b79 /doc/README.ag101p | |
parent | 850f788709cef8f7d53d571aec3bfb73b14c5531 (diff) | |
download | u-boot-imx-02464e386bb5f0a022c121f95ae75cf583759d95.zip u-boot-imx-02464e386bb5f0a022c121f95ae75cf583759d95.tar.gz u-boot-imx-02464e386bb5f0a022c121f95ae75cf583759d95.tar.bz2 |
fdt: add new fdt address parsing functions
fdtdec_get_addr_size() hard-codes the number of cells used to represent
an address or size in DT. This is incorrect in many cases depending on
the DT binding for a particular node or property (e.g. it is incorrect
for the "reg" property). In most cases, DT parsing code must use the
properties #address-cells and #size-cells to parse addres properties.
This change splits up the implementation of fdtdec_get_addr_size() so
that the core logic can be used for both hard-coded and non-hard-coded
cases. Various wrapper functions are implemented that support cases
where hard-coded cell counts should or should not be used, and where
the client does and doesn't know the parent node ID that contains the
properties #address-cells and #size-cells.
dev_get_addr() is updated to use the new functions.
Core functionality in fdtdec_get_addr_size_fixed() is widely tested via
fdtdec_get_addr_size(). I tested fdtdec_get_addr_size_auto_noparent() and
dev_get_addr() by manually modifying the Tegra I2C driver to invoke them.
Much of the core implementation of fdtdec_get_addr_size_fixed(),
fdtdec_get_addr_size_auto_parent(), and
fdtdec_get_addr_size_auto_noparent() comes from Thierry Reding's
previous commit "fdt: Fix fdtdec_get_addr_size() for 64-bit".
Based-on-work-by: Thierry Reding <treding@nvidia.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Michal Suchanek <hramrach@gmail.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Dropped #define DEBUG at the top of fdtdec.c:
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'doc/README.ag101p')
0 files changed, 0 insertions, 0 deletions