We have a custom iMx6 Dual Plus board with EIM parallel NOR flash interfaced (32MB S29GL256S90DHI02), the uboot,kernel image and DTB is stored in this memory.
We managed to boot the device from NOR flash and load the kernel image and DTB to RAM from NOR flash. The RFS is kept inside eMMC memory.
The issue we are facing is the copying of kernel image from NOR to RAM is taking to much time. The NOR flash is a parallel flash with 16 bit data bus.
The performance is worst at u-boot level at kernel level the throughput is around 15.5 MByte/s still slow expected ( 80 MB/s)
In linux the EIM clock speed is at 132Mhz
PLL_SYS 792 MHz
PLL_BUS 528 MHz
PLL_OTG 480 MHz
PLL_NET 125 MHz
IPG 66000 kHz
UART 80000 kHz
AHB 132000 kHz
AXI 264000 kHz
DDR 528000 kHz
USDHC1 198000 kHz
USDHC2 198000 kHz
USDHC3 198000 kHz
USDHC4 198000 kHz
EMI SLOW 66000 kHz
IPG PERCLK 66000 kHz
In U-boot I could see the EMI SLOW clock is at 66 Mhz is this need to be corrected to 132Mhz. Is this to be done as part of DCD ?
What all things needs to be take care to get the optimal performance of the NOR flash. ?
As per the application note from cypress (AN98562) the following are the configuration
Is XIP supported by IMx6 ?