[PATCH v1] scsi: Enable FUA bit and remove per-write SYNC_CACHE operations
Varadarajan Narayanan
varadarajan.narayanan at oss.qualcomm.com
Mon Jan 5 12:38:39 CET 2026
On Mon, Jan 05, 2026 at 10:55:26AM +0530, Balaji Selvanathan wrote:
> Enable the Force Unit Access (FUA) bit in SCSI WRITE10 commands to
> ensure writes bypass the device's volatile cache and go directly to
> non-volatile storage. This provides write-through behavior without
> requiring explicit cache flushes after each write operation.
>
> Remove the SYNC_CACHE command that was being issued after every
> scsi_write() call, as it is redundant when FUA is enabled and was
> causing system hangs during large sparse image flashing operations.
>
> Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
> Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
Reviewed-by: Varadarajan Narayanan <varadarajan.narayanan at oss.qualcomm.com>
> ---
> drivers/scsi/scsi.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index 8fe6b38a8c7..b755616bf3f 100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -124,7 +124,7 @@ static void scsi_setup_write_ext(struct scsi_cmd *pccb, lbaint_t start,
> lbaint_t blocks)
> {
> pccb->cmd[0] = SCSI_WRITE10;
> - pccb->cmd[1] = 0;
> + pccb->cmd[1] = 0x08; /* Set FUA bit to bypass write cache */
> pccb->cmd[2] = (unsigned char)(start >> 24) & 0xff;
> pccb->cmd[3] = (unsigned char)(start >> 16) & 0xff;
> pccb->cmd[4] = (unsigned char)(start >> 8) & 0xff;
> @@ -301,11 +301,6 @@ static ulong scsi_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
> buf_addr += pccb->datalen;
> } while (blks != 0);
>
> - /* Flush the SCSI cache so we don't lose data on board reset. */
> - scsi_setup_sync_cache(pccb, 0, 0);
> - if (scsi_exec(bdev, pccb))
> - scsi_print_error(pccb);
> -
> debug("%s: end startblk " LBAF ", blccnt " LBAF " buffer %lX\n",
> __func__, start, blocks, buf_addr);
> return blkcnt;
> --
> 2.34.1
>
More information about the U-Boot
mailing list