Hi guys from NXP,
we still have some issues/questions concerning the FSL QSPI IP, that
somehow block the new driver under the SPI memory framework [1].
If anyone of you could comment on these, or help finding solutions, this
would be very much appreciated.
1. The SPI NOR driver was using a reset of the flash and AHB domain to
invalidate the AHB buffer [2]. But this needs quite a lot of time, so we
have a hack to use two regions in memory and switch between them
alternately to invalidate the cache [3]. As this is not so nice, do you
know of any other possibility to invalidate the flash?
2. We tried to reuse the mapped memory to access different chips on
different CS, by switching the QUADSPI_SFA1AD, QUADSPI_SFA2AD, etc.
accordingly [4]. This doesn't work as expected, but Yogesh found out,
that it works with a fixed memory map for each CS and by adding a
ioremap(), as the SPI NOR driver does [5]. Can someone explain this
behavior and why the ioremap is needed?
3. In case of a NOR page program operation, the driver is expected to
write the full page, even if it's larger than the TX buffer size. Boris
explained this here: [6].
So we need to find a way of triggering a refill of the TX buffer by CPU
or DMA if possible.
Thank you in advance for your help,
Frieder
[1] https://patchwork.ozlabs.org/cover/939864/
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mtd/spi-nor/fsl-quadspi.c?h=v4.18-rc4#n591
[3]
https://github.com/fschrempf/linux/blob/fsl-qspi-next-2/drivers/spi/spi-fsl-qspi.c#L511
[4]
https://github.com/fschrempf/linux/blob/fsl-qspi-next-2/drivers/spi/spi-fsl-qspi.c#L476
[5]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mtd/spi-nor/fsl-quadspi.c?h=v4.18-rc4#n906
[6] https://patchwork.ozlabs.org/patch/928677/#1950278
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html