summaryrefslogtreecommitdiff
path: root/common/spl/spl_nor.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-09-24 18:20:13 -0600
committerTom Rini <trini@konsulko.com>2016-10-06 15:08:52 -0400
commit2a2ee2ac35f26f6b4dae11a225c2803291dff10e (patch)
treecdb362cf377e85a635bb54dc7bf7f54991914cd3 /common/spl/spl_nor.c
parent97d9df0a91f1c68695913518d8dfaf26c41dbb32 (diff)
spl: Pass spl_image as a parameter to load_image() methods
Rather than having a global variable, pass the spl_image as a parameter. This avoids BSS use, and makes it clearer what the function is actually doing. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'common/spl/spl_nor.c')
-rw-r--r--common/spl/spl_nor.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index b55fcc5cdb..6bfa399bac 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -7,14 +7,15 @@
#include <common.h>
#include <spl.h>
-static int spl_nor_load_image(struct spl_boot_device *bootdev)
+static int spl_nor_load_image(struct spl_image_info *spl_image,
+ struct spl_boot_device *bootdev)
{
int ret;
/*
* Loading of the payload to SDRAM is done with skipping of
* the mkimage header in this SPL NOR driver
*/
- spl_image.flags |= SPL_COPY_PAYLOAD_ONLY;
+ spl_image->flags |= SPL_COPY_PAYLOAD_ONLY;
#ifdef CONFIG_SPL_OS_BOOT
if (!spl_start_uboot()) {
@@ -29,14 +30,14 @@ static int spl_nor_load_image(struct spl_boot_device *bootdev)
if (image_get_os(header) == IH_OS_LINUX) {
/* happy - was a Linux */
- ret = spl_parse_image_header(&spl_image, header);
+ ret = spl_parse_image_header(spl_image, header);
if (ret)
return ret;
- memcpy((void *)spl_image.load_addr,
+ memcpy((void *)spl_image->load_addr,
(void *)(CONFIG_SYS_OS_BASE +
sizeof(struct image_header)),
- spl_image.size);
+ spl_image->size);
/*
* Copy DT blob (fdt) to SDRAM. Passing pointer to
@@ -59,14 +60,14 @@ static int spl_nor_load_image(struct spl_boot_device *bootdev)
* Load real U-Boot from its location in NOR flash to its
* defined location in SDRAM
*/
- ret = spl_parse_image_header(&spl_image,
+ ret = spl_parse_image_header(spl_image,
(const struct image_header *)CONFIG_SYS_UBOOT_BASE);
if (ret)
return ret;
- memcpy((void *)(unsigned long)spl_image.load_addr,
+ memcpy((void *)(unsigned long)spl_image->load_addr,
(void *)(CONFIG_SYS_UBOOT_BASE + sizeof(struct image_header)),
- spl_image.size);
+ spl_image->size);
return 0;
}