I have the FlexSPI able to erase, read, write, read successfully on power up - but on subsequent runs (without re-powering the board), erase doesn't seem to erase the FLASH.
After failing to erase, if i cycle power - erase works.
Sending a RESET command to the FLASH part doesn't fix this phenomenon.
I've noticed a few things on the scope:
1. My SCK frequency is around 1.78MHz instead of the expected 104MHz. Could someone provide guidance on properly setting SCK frequency?
2. The SCK level ranges from 0V to 1.68V - almost like the IOs are on a 1.8V pad, but I don't see anywhere that you can specifically set 1.8V vs 3.3 V on the IOMUX CTL bits, is this something configurable? How would I get this to 3.3V?
My code is based off of flexspi_nor_polling_transfer. I'm currently configuring clock (I thought) with:
flexspi_device_config_t deviceconfig = {
.flexspiRootClk = 104000000, // 104 MHz
.flashSize = FLASH_SIZE,
.CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle,
.CSInterval = 11, //100ns -> 9.61ns @ 104Mhz ,
.CSHoldTime = 2, //see RM fig 24-26: hold CS after last data read: (5 active + 5inactive)
.CSSetupTime = 2, //see RM fig 24-26: CS asserted before data read: (4.6 active + 5 inactive?)
.dataValidTime = 0,
....
};
and I'm not using XIP, so in app.h from the :

BOARD_BootClockRUN() is also untouched (with XIP set to 0).
BOARD_InitPins is the default except for IOMUXC_GPIO_SD_B1_05_FLEXSPI_A_DQS, which is used in internal loopback mode.