On Thu, May 28, 2026 at 11:28:33AM +0200, Neil Armstrong wrote: > Hi, > > On 5/28/26 03:20, [email protected] wrote: > > From: Denis Mukhin <[email protected]> > > > > Add flush command implementation along with a high-level > > disk_blk_flush() API to be called at certain checkpoints > > during the boot (e.g. updating custom bootflow flags stored > > on NVMe). > > First general comment, please split the patch by adding the > flush infrastructure first and then the nvme support.
Will do, thanks. > > The for NVMe, can it support write-through like SCSI FUA (Force Unit > Access) which bypasses the cache on writes, with slower writes > but safer and simpler than calling a flush before OS boot. Yes, I've seen there was FUA patch [1], which was then reverted [2]. For our purposes, flush seems to be enough: the use case is updating NVMe-backed boot counter from a custom bootflow. [1] https://lore.kernel.org/u-boot/20211019104049.v3.1.Ic581ec99f46b6dfa2e0b1922e670a333ac859e82@changeid/ [2] https://lore.kernel.org/u-boot/cagi-rul96gk5nfhx73uqqd_4sfbyt3gnwqhfphps+h58s20...@mail.gmail.com/ [..] > > /** > > * blk_find_device() - Find a block device > > * > > @@ -559,6 +577,16 @@ static inline ulong blk_derase(struct blk_desc > > *block_dev, lbaint_t start, > > return block_dev->block_erase(block_dev, start, blkcnt); > > } > > +static inline ulong blk_dflush(struct blk_desc *block_dev) > > +{ > > + blkcache_invalidate(block_dev->uclass_id, block_dev->devnum); > > Call blkcache_invalidate only if flush cmd is supported Ack. > > > + > > + if (block_dev->block_flush) > > + return block_dev->block_flush(block_dev); > > + > > + return 0; > > Why do you return success here and not from blk_flush() when flush is not > supported? Will update. Thanks, Denis

