mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 23:51:33 +00:00
02464e386b
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> |
||
---|---|---|
.. | ||
bios_emulator | ||
block | ||
bootcount | ||
clk | ||
core | ||
cpu | ||
crypto | ||
ddr | ||
demo | ||
dfu | ||
dma | ||
fpga | ||
gpio | ||
hwmon | ||
i2c | ||
input | ||
led | ||
memory | ||
misc | ||
mmc | ||
mtd | ||
net | ||
pci | ||
pcmcia | ||
pinctrl | ||
power | ||
pwm | ||
qe | ||
ram | ||
rtc | ||
serial | ||
soc | ||
sound | ||
spi | ||
thermal | ||
tpm | ||
twserial | ||
usb | ||
video | ||
watchdog | ||
Kconfig | ||
Makefile |