diff options
author | Robert Catherall <robert.catherall@arm.com> | 2023-11-23 14:16:01 +0000 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-12-20 10:46:54 -0500 |
commit | 785834d62ef3c4121601a4a68a032d96100b7475 (patch) | |
tree | e0144d2015c4fb7ac4a63e66b781be4eff512574 | |
parent | ece85cc0202717ee8eaf5acb0772c0912b7f8e9d (diff) | |
download | u-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.c | 12 |
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; } |