On Thu, Aug 03, 2017 at 02:31:02AM -0700, Bin Meng wrote: > Maximum Data Transfer Size (MDTS) field indicates the maximum > data transfer size between the host and the controller. The > host should not submit a command that exceeds this transfer > size. The value is in units of the minimum memory page size > and is reported as a power of two (2^n). > > The spec also says: a value of 0h indicates no restrictions > on transfer size. On the real NVMe card this is normally not > 0 due to hardware restrictions, but with QEMU emulated NVMe > device it reports as 0. In nvme_blk_read/write() below we > have the following algorithm for maximum number of logic > blocks per transfer: > > u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift); > > dev->max_transfer_shift being 0 will for sure cause lbas to > overflow. Let's use 20. With this fix, the NVMe driver works > on QEMU emulated NVMe device. > > Signed-off-by: Bin Meng <bmeng...@gmail.com>
Reviewed-by: Tom Rini <tr...@konsulko.com> -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot