From 07d900af76228e0f88116919272b935d456d112b Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Mon, 23 Sep 2019 10:18:42 +0800 Subject: spl: nor: introduce spl_nor_get_uboot_base Introduce weak spl_nor_get_uboot_base, then platform have their own implementation. Signed-off-by: Peng Fan Cc: Simon Goldschmidt Cc: Tien Fong Chee Cc: Marek Vasut Cc: Andreas Dannenberg Cc: Alex Kiernan Cc: Stefan Roese Cc: Patrick Delaunay Cc: Miquel Raynal Cc: Michal Simek --- common/spl/spl_nor.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'common') diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c index 969e319de0..0f8afa6f92 100644 --- a/common/spl/spl_nor.c +++ b/common/spl/spl_nor.c @@ -18,6 +18,11 @@ static ulong spl_nor_load_read(struct spl_load_info *load, ulong sector, } #endif +unsigned long __weak spl_nor_get_uboot_base(void) +{ + return CONFIG_SYS_UBOOT_BASE; +} + static int spl_nor_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { @@ -80,25 +85,25 @@ static int spl_nor_load_image(struct spl_image_info *spl_image, * defined location in SDRAM */ #ifdef CONFIG_SPL_LOAD_FIT - header = (const struct image_header *)CONFIG_SYS_UBOOT_BASE; + header = (const struct image_header *)spl_nor_get_uboot_base(); if (image_get_magic(header) == FDT_MAGIC) { debug("Found FIT format U-Boot\n"); load.bl_len = 1; load.read = spl_nor_load_read; ret = spl_load_simple_fit(spl_image, &load, - CONFIG_SYS_UBOOT_BASE, + spl_nor_get_uboot_base(), (void *)header); return ret; } #endif ret = spl_parse_image_header(spl_image, - (const struct image_header *)CONFIG_SYS_UBOOT_BASE); + (const struct image_header *)spl_nor_get_uboot_base()); if (ret) return ret; memcpy((void *)(unsigned long)spl_image->load_addr, - (void *)(CONFIG_SYS_UBOOT_BASE + sizeof(struct image_header)), + (void *)(spl_nor_get_uboot_base() + sizeof(struct image_header)), spl_image->size); return 0; -- cgit v1.2.3