From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Nelson Date: Tue, 02 Apr 2013 14:50:43 -0700 Subject: [U-Boot] [PATCH] mx6: fsl_esdhc: Fix waiting for DMA operation completion In-Reply-To: <515B1F27.4010702@gmail.com> References: <1364897095-28227-1-git-send-email-andrew_gabbasov@mentor.com> <515AFE1E.801@boundarydevices.com> <515B1F27.4010702@gmail.com> Message-ID: <515B52B3.7040706@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Thanks Dirk, On 04/02/2013 11:10 AM, Dirk Behme wrote: > Am 02.04.2013 17:49, schrieb Eric Nelson: >> Thanks Andrew, >> >> On 04/02/2013 03:04 AM, Andrew Gabbasov wrote: >>> On iMX6 sometimes the Transfer Complete interrupt occurs earlier >>> than the DMA part completes its operation. If immediately after that >>> the read data is used for some data verification, those obtained data >>> may be incomplete, which causes intermittent verification failures. >>> >> >> Can you describe how to repeat this? >> >>> For example, when the default environment command tries to load and run >>> boot script from FAT partition on SD/MMC card, it sometimes fails, >>> reporting invalid partition table, or unknown partition type, or >>> something else of that kind. Such errors disappear if the build >>> configuration has CONFIG_SYS_FSL_ESDHC_USE_PIO, or if some delay >>> is added after transfer completion. >>> >> We do this on every boot on SABRE Lite and Nitrogen6x boards, >> and haven't seen an issue. >> >> What board are you testing on? >> >> Do you have cache enabled? >> >> Is this with an SD card or eMMC? > > Andrew will have the details, but to my understanding this implements in > U-Boot what the Freescale kernel has in > > http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/drivers/mmc/host/sdhci-esdhc-imx.c?h=imx_3.0.35_12.09.01#n234 > Andrew, did you trap one of these?