aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Catherall <robert.catherall@arm.com>2023-11-23 14:16:01 +0000
committerTom Rini <trini@konsulko.com>2023-12-20 10:46:54 -0500
commit785834d62ef3c4121601a4a68a032d96100b7475 (patch)
treee0144d2015c4fb7ac4a63e66b781be4eff512574
parentece85cc0202717ee8eaf5acb0772c0912b7f8e9d (diff)
downloadu-boot-785834d62ef3c4121601a4a68a032d96100b7475.zip
u-boot-785834d62ef3c4121601a4a68a032d96100b7475.tar.gz
u-boot-785834d62ef3c4121601a4a68a032d96100b7475.tar.bz2
arm: afs: Set the filesize env. var. on load
The `afs load` command copies data to RAM. Set the filesize environment variable to record how much data was 'loaded' Signed-off-by: Robert Catherall <robert.catherall@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Tested-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r--cmd/armflash.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/cmd/armflash.c b/cmd/armflash.c
index d1466f7..fdaea5a 100644
--- a/cmd/armflash.c
+++ b/cmd/armflash.c
@@ -180,6 +180,7 @@ static int load_image(const char * const name, const ulong address)
{
struct afs_image *afi = NULL;
int i;
+ loff_t len_read = 0;
parse_flash();
for (i = 0; i < num_afs_images; i++) {
@@ -197,6 +198,7 @@ static int load_image(const char * const name, const ulong address)
for (i = 0; i < afi->region_count; i++) {
ulong from, to;
+ u32 size;
from = afi->flash_mem_start + afi->regions[i].offset;
if (address) {
@@ -208,14 +210,20 @@ static int load_image(const char * const name, const ulong address)
return CMD_RET_FAILURE;
}
- memcpy((void *)to, (void *)from, afi->regions[i].size);
+ size = afi->regions[i].size;
+ memcpy((void *)to, (void *)from, size);
printf("loaded region %d from %08lX to %08lX, %08X bytes\n",
i,
from,
to,
- afi->regions[i].size);
+ size);
+
+ len_read += size;
}
+
+ env_set_hex("filesize", len_read);
+
return CMD_RET_SUCCESS;
}