Hello,
We are using iMX8QXP MEK based custom board with Yocto L5.4.24-2.1.0. In our project, we are connecting multiple memories(like Octal SPI flash, Quad SPI flash, Octal SPI RAM) on the FlexSPI interface.
Our aim is to access these memories at the maximum possible speed. During read-write testing, we noticed that in SDR mode we are able to read-write memories at the clock frequency which we have set in the device tree file(spi-max-frequency property) but in DDR mode the frequency is halved.
In the reference manual, we have seen the table 18.4 below which clearly states that the clock will be halved in DDR mode.

Also, the waveforms in the reference manual show half clock in DDR operations


From all these data from the reference manual, we understand that when we access memories in SDR mode the clock remains the same, but when we access memories in DDR mode the clock will get halved.
If the clock reduces by half during DDR, the actual data rate remains the same as during SDR and our actual goal of achieving the maximum data rate is not fulfilled.
1. Is this behavior correct?
In the IMX8QXPAEC document, we have read the following under FlexSPI timing parameters.

2. Does this mean that we can access memories in DDR mode with the same frequency as SDR mode by changing MCR0[RXCLKSRC] register bits?
3. If yes, is there any document/procedure for that?
Thank you
Priyank