I am interested in the relative flash memory performance of i.MXRT compared to Kinetis. This is for a use case where the application is too large to fit in ITCM, so we have to run some code either from external QSPI flash or Hyperflash.
For Kinetis, the existing application runs code from internal 2MB flash memory (part # MK66FN2M0VMD18). The flash clock is 28 MHz, this means the maximum possible read performance is 112 MB/s. However there is also a 128-bit speculation buffer which can prefetch the next 128-bit flash memory location, so perhaps the performance can be higher than 112 MB/s?
For i.MXRT, from AN12437 , the maximum performance running from external QSPI flash is 58 MB/s.
It seems to me that i.MX RT can be slower than Kinetis, unless you analyse your code and allocate critical functions to ITCM.
The Speed of the Flash depends on the Flash-Type you use. For a QuadSPI-Flash @133 Mhz you are correct with 58 MB/s. But there are also Flash-Memory available which can do DDR-transfer via QuadSPI which doubles the transfer rate.
With an Octa-SPI-Flash like Adesto ATXP032 you can reach a data transfer rate up to 266 MByte/s.
In Addition, the flexSPI Interface has an integrated buffer like the Kinetis Controller, furthermore the M7-Core has an integrated cache which will also speed up the performance.
But it is best to place the most performance critical code inside the ITCM (and data to DTCM).