On Wed, Jun 10, 2020 at 09:18:23PM +0200, Michael Trimarchi wrote: > From: Jagan Teki <ja...@amarulasolutions.com> > > This patch try to avoids eviction of dirty lines during DMA > transfer. The code right now execute the following step: > > - allocate the buffer > - start a dma operation using the non-coherent dma buffer > - invalidate cache lines associated with the buffer > - read the buffer > > This can lead to reading back not valid information, because the cache > controller could evict dirty cache lines belonging to the buffer *after* > the DMA operation has started to fill the DRAM. > In order to avoid this, a new invalidation is required *before* starting > the DMA operation. The patch just adds an invalidation before submitting > the DMA command. > > Example below shows the nvme disk scan result without the following > patch > > => nvme scan > nvme_get_info_from_identify: nn = 544502629, vwc = 100, > sn = dev_0T, mn = `�\�, fr = t_part, mdts = 105 > > So, invalidating the cache before submitting the admin command, > fix the cpu read. > > Cc: André Przywara <andre.przyw...@arm.com> > Reported-by: Suniel Mahesh <su...@amarulasolutions.com> > Signed-off-by: Michael Trimarchi <mich...@amarulasolutions.com> > Signed-off-by: Jagan Teki <ja...@amarulasolutions.com> > Tested-by: Suniel Mahesh <su...@amarulasolutions.com> > Reviewed-by: Bin Meng <bmeng...@gmail.com>
Applied (back on June 23rd) to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature