PowerPC: mpc85xx: Update ft_verify_fdt
authorTom Rini <trini@konsulko.com>
Thu, 3 Aug 2017 13:33:07 +0000 (09:33 -0400)
committerTom Rini <trini@konsulko.com>
Thu, 3 Aug 2017 18:48:53 +0000 (14:48 -0400)
With the changes to fdt_get_base_address() we need to modify the logic
in ft_verify_fdt() for how we check the validity of the CCSR address.

Tested-on: qemu-ppce500 -M mpc8544ds
Fixes: 336a44877af8 ("fdt: Correct fdt_get_base_address()")
Cc: York Sun <york.sun@nxp.com>
Cc: Wolfgang Denk <wd@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/powerpc/cpu/mpc85xx/fdt.c

index a9ea947305ffab9df1ed3312c38cca0563ce38a4..caa0bf9bdc1d889876f4b9a61ac99675c2b0b4b4 100644 (file)
@@ -770,8 +770,15 @@ int ft_verify_fdt(void *fdt)
 
        /* First check the CCSR base address */
        off = fdt_node_offset_by_prop_value(fdt, -1, "device_type", "soc", 4);
-       if (off > 0)
-               addr = fdt_get_base_address(fdt, off);
+       if (off > 0) {
+               int size;
+               u32 naddr;
+               const fdt32_t *prop;
+
+               naddr = fdt_address_cells(fdt, off);
+               prop = fdt_getprop(fdt, off, "ranges", &size);
+               addr = fdt_translate_address(fdt, off, prop + naddr);
+       }
 
        if (!addr) {
                printf("Warning: could not determine base CCSR address in "