On 1/7/2018 5:39 AM, Marek Vasut wrote: > On 01/06/2018 10:09 PM, Jason Rush wrote: >> On 1/6/2018 1:29 PM, Marek Vasut wrote: >>> On 01/06/2018 07:46 PM, Jason Rush wrote: >>>> On 1/6/2018 9:42 AM, Marek Vasut wrote: >> <snip> >> >>>> There was a minor upstream change to one of the files since I submitted v4 >>>> of my >>>> cadence device-tree patchset, so I rebased and resent the patchset as a >>>> v5. I >>>> included everyone that was originally involved with the patches and added >>>> a CC >>>> for Marek. >>>> >>>> This is only the patchset for the device tree changes for the cadence qspi >>>> driver, >>>> Simon will still have to add the patch that fixes the cache invalidation >>>> bug in the >>>> cadence driver. >>> Sigh, can we get a single patchset out which fixes the problem ? >>> >>> I mean, if I understand this correctly, you're all addressing one single >>> problem, but with two patchsets, yes ? >>> >> Well... The one issue we're trying to fix is that the cadence QSPI hasn't >> worked on >> the socfpga arch since late 2016. However, it's two different issues that >> have caused >> this bigger problem: >> >> 1. The indaddrtrig register was being programmed with an incorrect value for >> socfpga >> as the result of assuming it should be programmed with the same address as >> the >> ahbbase address. This issue is resolved by adopting the Linux DT bindings, >> which has >> an independent setting for the indaddrtrig register so the register can be >> set correctly >> on all architectures. Plus it aligns the DT between u-boot and Linux. > That should be an easy patch, so this is the patchset 0/5..5/5 that you > just submitted ? Yes. I saw you Acked it, thank you. >> 2. The cadence driver was modified at one point to use the bouncebuf >> functions to fix >> an issue on a TI architecture that expected, where if I recall correctly all >> reads except >> the last have to be 32-bit reads. However, since the bouncebuf was designed >> for DMA >> transfers, it invalidates the data cache after reading, but since the >> cadence is using cpu >> transfers the newly read data is thrown away when the cache is invalidated. >> This issue >> is resolved by reverting the commit that introduced using the bounce buffer >> for read >> operations, which according to Vignesh don't cause any issues to the TI >> architecture. > Hmmmmm, I wonder why you need bounce buffer at all here. The CQSPI > literally reads/writes a register space (or some FIFO in register > space), there is no DMA involved at all. I also wonder why we have to > manipulate with cache at all here.
I agree, I don't believe this needs a bounce buffer at all. This isn't a DMA, there is no need for cache manipulation. Vignesh understands the problem better than I do on the TI platform, but I believe it was used since it was an easy way to ensure the register read/writes were all 32-bits wide up until the last read/write. I believe the bounce buffer should be removed from the CQSPI driver and a different solution should be implemented, but Vignesh should weigh in on that since it effects his architecture. -- Jason _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot