
On Wed, 27 Sept 2023 at 07:34, Matthias Schiffer matthias.schiffer@ew.tq-group.com wrote:
A follow-up to commit 842fb5de424e ("drivers: use devfdt_get_addr_size_index_ptr when cast to pointer") and commit 320a1938b6f7 ("drivers: use devfdt_get_addr_index_ptr when cast to pointer").
In addition to using the *_ptr variants of these functions where the address is cast to a pointer, this also changes devfdt_get_addr_*() to dev_read_addr_*() in a few places. Some variable and field types are changed from fdt_addr_t or phys_addr_t to void* where the cast was happening later.
This patch fixes a number of compile warnings when building a 32bit U-Boot with CONFIG_PHYS_64BIT=y. In some places, it also fixes error handling where the return value of dev_read_addr() etc. was checked for NULL instead of FDT_ADDR_T_NONE.
Signed-off-by: Matthias Schiffer matthias.schiffer@ew.tq-group.com
This seems to work correctly (tested on x86 sandbox and TI AM62x; I have not tested the Tegra, Sun4i and BCM drivers), but I have two questions:
It is not entirely clear to me what the difference between dev_read_addr_ptr*() and dev_remap_addr*() etc. is, but some drivers mix both. Should dev_remap_addr*() be used for __iomem? Is __iomem used consistently in U-Boot at all?
Perhaps there is no difference in U-Boot due to virtual and physical addresses being the same mostly?
Furthermore, can devfdt_get_*() be replaced with dev_read_*() unconditionally? Is there any reason why devfdt_get_*() hasn't been dropped entirely in a treewide search-and-replace?
Yes you can replace it...dev_read calls the devfdt interface if !OF_LIVE
The k3-sec-proxy change goes on top of my other patch "mailbox: k3-sec-proxy: fix error handling for missing scfg in FDT" I submitted yesterday.
arch/arm/mach-k3/sysfw-loader.c | 16 ++++++++-------- drivers/dma/ti/k3-udma.c | 5 ++--- drivers/gpio/tegra186_gpio.c | 4 ++-- drivers/mailbox/k3-sec-proxy.c | 18 +++++++++--------- drivers/phy/allwinner/phy-sun4i-usb.c | 12 ++++++------ drivers/phy/phy-bcm-sr-pcie.c | 4 ++-- drivers/ram/k3-am654-ddrss.c | 20 ++++++++++---------- drivers/ram/k3-ddrss/k3-ddrss.c | 23 ++++++++++------------- drivers/soc/ti/k3-navss-ringacc.c | 12 ++++++------ 9 files changed, 55 insertions(+), 59 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org