Hi Nick
I had my 1060 EVB running so I tried:
IOMUXC_SW_MUX_CTL_PAD_GPIO_SD_B1_05 is at the address 0x401f81e8 so I check its initial value
#md 401f81e8 l 1
Memory Display
0x401f81e8 00000011 ....
which is (GPIO_SD_B1_05_FLEXSPI_A_DQS | IOMUXC_SW_MUX_CTL_PAD_SION)
Now I changed it to its GPIO function with
#mm 401f81e8 l 5
Write - OK
and checked its value
md 401f81e8 l 1
Memory Display
0x401f81e8 00000005 ....
Now, I have code running in ITC so if the QSPI interface were to have been affected it wouldn't cause it to crash, so I also checked reading QSPI flash content before and after the change
Before the change
#md 60000000
Memory Display
0x60000000 46 43 46 42 00 04 01 56 00 00 00 00 01 03 03 00 FCFB...V........
After the change
Memory Display
0x60000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
Then I set the original 0x11 back and I could again read frm QSPI flash (in fact whether I read via AHB bus accesses or via a QSPI driver the results are the same....setting another MUX function to that register screws up QSPI flash reads.
Therefore it looks like this is a real problem when QSPI flash is used, whether the pin looks to be needed or not!
The code that I used is at this link in case you would like to try (including loading guide)-https://community.nxp.com/t5/i-MX-RT/Ethernet-issue-at-powerup/m-p/1135279/highlight/false#M9947
It is in fact best to use the "Storage display" command to check QSPI (these pass through the QSPI driver rather than being direct memory accesses) content because the AHB has a cache and so doesn't always update the values). The I/O commands are in menu 3.
Here is what happens if I switch the MUX back and forth and read the QSPI flash content each time - the QSPI driver interface reads 0s and not 1s (as AHB interface does) but you see it works/fails/works/fails consistently.
#sd 60000000
Memory Display
0x60000000 42464346 56010400 00000000 00030301 BFCFV...........
0x60000010 00000000 00000000 00000000 00000000 ................
0x60000020 00000000 00000000 00000000 00000000 ................
0x60000030 00000000 00000000 00000000 00000000 ................
mm 401f81e8 l 5
Write - OK
sd 60000000
Memory Display
0x60000000 00000000 00000000 00000000 00000000 ................
0x60000010 00000000 00000000 00000000 00000000 ................
0x60000020 00000000 00000000 00000000 00000000 ................
0x60000030 00000000 00000000 00000000 00000000 ................
mm 401f81e8 l 11
Write - OK
sd 60000000
Memory Display
0x60000000 42464346 56010400 00000000 00030301 BFCFV...........
0x60000010 00000000 00000000 00000000 00000000 ................
0x60000020 00000000 00000000 00000000 00000000 ................
0x60000030 00000000 00000000 00000000 00000000 ................
mm 401f81e8 l 5
Write - OK
sd 60000000
Memory Display
0x60000000 00000000 00000000 00000000 00000000 ................
0x60000010 00000000 00000000 00000000 00000000 ................
0x60000020 00000000 00000000 00000000 00000000 ................
0x60000030 00000000 00000000 00000000 00000000 ................
Unfortunately this may be bad news for you if you were banking in using the pin as another function unless NXP can step in any explain a secret workaround!
Regards
Mark
uTasker project developer for Kinetis and i.MX RT]
I can be contacted by personal message or on the uTasker web site to discuss professional training or product development requirements, to accelerate progress or to solve technical problems