[PATCH v2] drivers: fastboot: Add support for SPI flash memory

Mattijs Korpershoek mkorpershoek at kernel.org
Thu Jul 17 08:30:23 CEST 2025


Hi Ariel,

Thank you for the patch.

On Tue, Jul 15, 2025 at 16:11, Ariel D'Alessandro <ariel.dalessandro at collabora.com> wrote:

> 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.

nitpick: u-boot -> U-Boot

>
> To define a raw partition descriptor, add an environment variable
> similar to the MMC case:
>
> ```
> fastboot_raw_partition_<raw partition name>=<offset> <size>
> ```
>
> for example:
>
> ```
> fastboot_raw_partition_boot=0x0 0x1000000
> ```
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro at collabora.com>
> ---
>  drivers/fastboot/Kconfig        |   6 +-
>  drivers/fastboot/Makefile       |   1 +
>  drivers/fastboot/fb_command.c   |   8 +
>  drivers/fastboot/fb_getvar.c    |   6 +
>  drivers/fastboot/fb_spi_flash.c | 249 ++++++++++++++++++++++++++++++++
>  include/fb_spi_flash.h          |  40 +++++

Can we also include a doc change to doc/android/fastboot.rst ?
The current doc mentions:
"Support for both eMMC and NAND devices is included."

We should add SPI flash to that sentence.

Maybe also mention in the "Raw partition descriptors" that this is
supported for SPI flash as well.

>  6 files changed, 309 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/fastboot/fb_spi_flash.c
>  create mode 100644 include/fb_spi_flash.h
>

[...]

> +
> +/**
> + * 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

Can we add a Return: line to document the return code?

> + */
> +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

> 2.50.0


More information about the U-Boot mailing list