diff options
| author | Jon Lin <[email protected]> | 2021-10-19 10:40:53 +0800 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2021-11-17 17:09:47 -0500 |
| commit | b6bfb8971dd039a60e1cff1895ab9be8be0915b3 (patch) | |
| tree | a31ed0ee38af9d590698568e299d202ce91fcdb0 | |
| parent | 4f2e2280862aabb22cbdb39d37d524702aa57bcc (diff) | |
nvme: Enable FUA
Most NVME devcies maintain data in internal cache for an uncertain
times, and u-boot has no method to force NVME to flush cache.
So this patch adds FUA to avoid data loss caused by power off after data
programming.
Signed-off-by: Jon Lin <[email protected]>
Reviewed-by: Stefan Agner <[email protected]>
| -rw-r--r-- | drivers/nvme/nvme.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c index 3c529a2fce2..9623c896a15 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -762,6 +762,10 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, c.rw.appmask = 0; c.rw.metadata = 0; + /* Enable FUA for data integrity if vwc is enabled */ + if (dev->vwc) + c.rw.control |= NVME_RW_FUA; + while (total_lbas) { if (total_lbas < lbas) { lbas = (u16)total_lbas; |
