From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Thu, 06 Sep 2012 14:20:20 +0200 Subject: [U-Boot] [PATCH 2/2] MX28: SPI: Fix the DMA chaining In-Reply-To: <1346465280-985-2-git-send-email-marex@denx.de> References: <1346465280-985-1-git-send-email-marex@denx.de> <1346465280-985-2-git-send-email-marex@denx.de> Message-ID: <50489504.8020100@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 01/09/2012 04:08, Marek Vasut wrote: > It turns out that in order for the SPI DMA to properly support > continuous transfers longer than 65280 bytes, there are some very > important parts that were left out from the documentation. > > Firstly, the XFER_SIZE register is not written with the whole length > of a transfer, but is written by each and every chained descriptor > with the length of the descriptors data buffer. > > Next, unlike the demo code supplied by FSL, which only writes one PIO > word per descriptor, this does not apply if the descriptors are chained, > since the XFER_SIZE register must be written. Therefore, it is essential > to use four PIO words, CTRL0, CMD0, CMD1, XFER_SIZE. CMD0 and CMD1 are > written with zero, since they don't apply. The DMA programs the PIO words > in an incrementing order, so four PIO words. > > Finally, unlike the demo code supplied by FSL, the SSP_CTRL0_IGNORE_CRC > must not be set during the whole transfer, but it must be set only on the > last descriptor in the chain. > > Signed-off-by: Marek Vasut > Cc: Fabio Estevam > Cc: Otavio Salvador > Cc: Stefano Babic > --- Applied to u-boot-imx, thanks. Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================