diff options
author | Simon Glass <sjg@chromium.org> | 2023-12-14 21:19:04 -0700 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-04-10 17:04:25 -0600 |
commit | 637425bab338c1aa7b83f68068dbf5ad398d53af (patch) | |
tree | 492711f11ef748ec8abb31937ea72c932cbd7dc9 /drivers/fastboot/fb_command.c | |
parent | 6d47fd39fc53c4baaeed8b9b0d3ad6c0bf07f80f (diff) |
fastboot: Change fastboot_buf_addr to an address
Given the name of this variable, it should be an address, not a
pointer. Update this, to make it easier to use with sandbox.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Dmitrii Merkurev <dimorinny@google.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on vim3
Diffstat (limited to 'drivers/fastboot/fb_command.c')
-rw-r--r-- | drivers/fastboot/fb_command.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c index 5fcadcdf503..55ac1e96979 100644 --- a/drivers/fastboot/fb_command.c +++ b/drivers/fastboot/fb_command.c @@ -10,6 +10,7 @@ #include <fastboot-internal.h> #include <fb_mmc.h> #include <fb_nand.h> +#include <mapmem.h> #include <part.h> #include <stdlib.h> #include <linux/printk.h> @@ -243,6 +244,7 @@ void fastboot_data_download(const void *fastboot_data, { #define BYTES_PER_DOT 0x20000 u32 pre_dot_num, now_dot_num; + void *buf; if (fastboot_data_len == 0 || (fastboot_bytes_received + fastboot_data_len) > @@ -252,8 +254,10 @@ void fastboot_data_download(const void *fastboot_data, return; } /* Download data to fastboot_buf_addr */ - memcpy(fastboot_buf_addr + fastboot_bytes_received, + buf = map_sysmem(fastboot_buf_addr, 0); + memcpy(buf + fastboot_bytes_received, fastboot_data, fastboot_data_len); + unmap_sysmem(buf); pre_dot_num = fastboot_bytes_received / BYTES_PER_DOT; fastboot_bytes_received += fastboot_data_len; @@ -296,13 +300,16 @@ void fastboot_data_complete(char *response) */ static void __maybe_unused flash(char *cmd_parameter, char *response) { + void *buf = map_sysmem(fastboot_buf_addr, 0); + if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC)) - fastboot_mmc_flash_write(cmd_parameter, fastboot_buf_addr, - image_size, response); + fastboot_mmc_flash_write(cmd_parameter, buf, image_size, + response); if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_NAND)) - fastboot_nand_flash_write(cmd_parameter, fastboot_buf_addr, - image_size, response); + fastboot_nand_flash_write(cmd_parameter, buf, image_size, + response); + unmap_sysmem(buf); } /** |