u-boot-brain/drivers
Marek Vasut 88d1555968 MX28: SPI: Fix the DMA DCache race condition
This patch fixes dcache-related problem. The problem manifested
when dcache was enabled and the following command issued twice:

mw 0x42000000 0 0x4000 ; sf probe ; sf read 0x42000000 0x0 0x10000 ; sha1sum 0x42000000 0x10000

The SHA1 checksum was correct during the first call. Yet with
every subsequent call of the above command, it differed and was
wrong.

It turns out this was because of a race condition. On the first
time the command was called, no cacheline contained any data from
the destination memory location. The DMA transfered data into the
location and the cache above the location was invalidated. Then the
checksum was computed, but that meant the data were loaded into data
cache.

On any subsequent call, the DMA again transfered data into the same
destination. Yet during the transfer, some of the DCache lines were
evicted and written back into the main memory. Once the DMA transfer
completed, the data cache was invalidated over the memory location as
usual. But the data that were to be loaded back into the data cache
by subsequent SHA1 checksuming were corrupted.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Stefano Babic <sbabic@denx.de>
2012-09-06 14:17:55 +02:00
..
bios_emulator Add abs() macro to return absolute value 2012-05-15 08:31:37 +02:00
block Remove remaining mdelay() macros 2012-07-08 22:15:08 +02:00
bootcount Consolidate bootcount code into drivers/bootcount 2012-09-01 14:26:02 +02:00
dma MX28: DMA: Prolong the DMA timeout 2012-09-01 14:58:29 +02:00
fpga Remove execute permissions from source files 2012-03-04 21:56:15 +01:00
gpio gpio: add gpio api support to mx27 (v4) 2012-09-01 14:58:29 +02:00
hwmon hwmon: do not init sensors on startup 2011-08-04 23:30:38 +02:00
i2c mxs: Convert sys_proto.h prefixes to 'mxs' 2012-09-01 14:58:25 +02:00
input tegra20: rename tegra2 -> tegra20 2012-09-01 14:58:21 +02:00
misc pmic: dialog: Avoid name conflicts 2012-05-15 08:31:34 +02:00
mmc fsl_esdhc: Remove cache snooping for i.MX 2012-09-01 14:58:30 +02:00
mtd at91: atmel_nand: Update driver to support Programmable Multibit ECC controller 2012-09-01 17:06:14 +02:00
net arm : Atmel : add at91sam9x5ek board support 2012-09-01 14:58:14 +02:00
pci pci: declare pciauto functions in header 2012-03-30 22:46:00 +02:00
pcmcia PXA: Remove PXA PCMCIA support 2012-03-26 23:09:23 +02:00
power i2c: Add TPS6586X driver 2012-05-15 08:31:37 +02:00
qe drivers/qe/uec.c: Fix compile warning 2012-05-22 13:41:48 -05:00
rtc rtc: add support of mx27 rtc 2012-09-01 14:58:25 +02:00
serial Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging 2012-09-02 00:44:09 +02:00
spi MX28: SPI: Fix the DMA DCache race condition 2012-09-06 14:17:55 +02:00
tpm Introduce generic TPM support in u-boot 2011-12-07 08:45:51 +01:00
twserial Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
usb mxs: rename regs-clkctrl.h to regs-clkctrl-mx28.h 2012-09-01 14:58:25 +02:00
video video: support exynos pwm backlight driver 2012-09-01 14:58:24 +02:00
watchdog AT91: fix at91sam_wdt.c to reworked header files 2011-05-18 07:56:51 +02:00