summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Andrianov <vitalya@ti.com>2014-04-04 13:16:47 -0400
committerTom Rini <trini@ti.com>2014-04-17 17:24:38 -0400
commit00c200f137b60a04b137e0c7f9097f87ea2ee755 (patch)
tree3812387c93ea5dd312d3fd328efb1b7d5c833cfb
parentdf4dbb5df6ab1c1d27b3fd4acbaad69b47095daf (diff)
downloadu-boot-imx-00c200f137b60a04b137e0c7f9097f87ea2ee755.zip
u-boot-imx-00c200f137b60a04b137e0c7f9097f87ea2ee755.tar.gz
u-boot-imx-00c200f137b60a04b137e0c7f9097f87ea2ee755.tar.bz2
fdt: call ft_board_setup_ex() at the end of image_setup_libfdt()
The keystone2 SOC requires to fix all 32 bit aliased addresses to their 36 physical format. This has to happen after all fdt nodes are added or modified. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> Acked-by: Tom Rini <trini@ti.com>
-rw-r--r--common/image-fdt.c5
-rw-r--r--include/fdt_support.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/common/image-fdt.c b/common/image-fdt.c
index a54a919..5d64009 100644
--- a/common/image-fdt.c
+++ b/common/image-fdt.c
@@ -487,5 +487,10 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
if (!ft_verify_fdt(blob))
return -1;
+#ifdef CONFIG_SOC_K2HK
+ if (IMAGE_OF_BOARD_SETUP)
+ ft_board_setup_ex(blob, gd->bd);
+#endif
+
return 0;
}
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 9871e2f..15eba01 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -63,6 +63,13 @@ int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose);
#endif
void ft_board_setup(void *blob, bd_t *bd);
+/*
+ * The keystone2 SOC requires all 32 bit aliased addresses to be converted
+ * to their 36 physical format. This has to happen after all fdt nodes
+ * are added or modified by the image_setup_libfdt(). The ft_board_setup_ex()
+ * called at the end of the image_setup_libfdt() is to do that convertion.
+ */
+void ft_board_setup_ex(void *blob, bd_t *bd);
void ft_cpu_setup(void *blob, bd_t *bd);
void ft_pci_setup(void *blob, bd_t *bd);