From afca60620ad7958fbee2d5518de0383483c82ced Mon Sep 17 00:00:00 2001 From: Ariel D'Alessandro Date: Thu, 17 Jul 2025 10:58:54 -0300 Subject: drivers: fastboot: Add support for SPI flash memory Fastboot currently supports MMC and NAND flash devices. Similarly, extend the support to SPI flash memories. Note that in this initial implementation, partitions on the device are not supported yet, but raw partitions can be set in U-Boot environment. To define a raw partition descriptor, add an environment variable similar to the MMC case: ``` fastboot_raw_partition_= ``` for example: ``` fastboot_raw_partition_boot=0x0 0x1000000 ``` Signed-off-by: Ariel D'Alessandro Reviewed-by: Mattijs Korpershoek --- include/fb_spi_flash.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 include/fb_spi_flash.h (limited to 'include') diff --git a/include/fb_spi_flash.h b/include/fb_spi_flash.h new file mode 100644 index 00000000000..904654748a4 --- /dev/null +++ b/include/fb_spi_flash.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2025 Collabora Ltd. + */ + +#ifndef _FB_SPI_FLASH_H_ +#define _FB_SPI_FLASH_H_ + +#include + +/** + * fastboot_spi_flash_get_part_info() - Lookup SPI flash partition by name + * + * @part_name: Named device to lookup + * @part_info: Pointer to returned struct disk_partition + * @response: Pointer to fastboot response buffer + * Return: 0 if OK, -ENOENT if no partition name was given, -ENODEV on invalid + * raw partition descriptor + */ +int fastboot_spi_flash_get_part_info(const char *part_name, + struct disk_partition *part_info, + char *response); + +/** + * fastboot_spi_flash_write() - Write image to SPI flash for fastboot + * + * @cmd: Named device to write image to + * @download_buffer: Pointer to image data + * @download_bytes: Size of image data + * @response: Pointer to fastboot response buffer + */ +void fastboot_spi_flash_write(const char *cmd, void *download_buffer, + u32 download_bytes, char *response); + +/** + * fastboot_spi_flash_erase() - Erase SPI flash for fastboot + * + * @cmd: Named device to erase + * @response: Pointer to fastboot response buffer + */ +void fastboot_spi_flash_erase(const char *cmd, char *response); +#endif -- cgit v1.2.3