We have designed a custom board with imxrt1176. Bootmode[1:0] pins are used for booting purpose. Although I change pins to 00,01,10 or even 11 and immediately following reset the board, imxrt1176 does not change its boot device. It always keeps in Serial Downloader.
I can download "led_blinky.bin" example file to imxrt1176 internal RAM in McuExpresso IDE and run succesfully in debug mode in internal RAM. However, when I try the same app on external QSPI NOR Flash (W25Q128JVSIM), although I successfully can "mass erase" and program file to external flash(with the help of GUI Flash Tool in IDE), when I try to run app on that external Flash chip, debugger stops working and gives error. So I could not debug/run app on external flash unlike internal RAM.
I have USB1 interface for serial downloader purpose. When I connect to imxrt1176 over USB1, I can read/erase/program exernal flash with any of the stand-alone programs like NXP MCU Boot Utility v3.5.0 or MCUXpresso Secure Provisioning v4.1 tools. After programming to external flash, I change Bootmode[1:0] pins to "10" (Internal Boot), then make a Reset the board, led_blinky app not work.
Actually, whatver the states of Bootmode[1:0] switches, I can always connect to imxrt1176 in above any of stand-alone tools over USB1 serial downloader interface. So, Bootmode[1:0] not works as I expected, not changes imxrt1176's state. For example, I guess that when I change bootmode to "11", I could not reach imxrt1176 over USB1 after power-cycle the board. But, it not.
I read that there is BT_FUSE_SEL fuse and must be set to "1" . I suspect that solves my problem. However I would like to be exact sure if it works. Because setting the fuse is irreversible.
By the way I used the BT_CFG[11:0] boot GPIOs for different purposes in my PCB unlike in imxrt1170-evk schematics used. There are no any configuration switches, only PCB has 2-dip switch for BOOTMODE[1:0] GPIOs.
Finally I even compared to content of "bootable_images\evkmimxrt1170_iled_blinky_cm7_nopadding.bin" file with the one read from W25Q128JVSIM Flash in HxD Editor Program. Both files match one by one.
Waiting your helps, many thanks in advance.
Dear Jay, Thank you very much for your interest. I found its solution. I burnt BT_FUSE_SEL fuse, later on imxrt1176 can be accesible now. Burning BT_FUSE_SEL is a must in order to take boot mode[1:0] switches in effect. Now, I can easily debug and program both via debugger and serial downloader over USB interface.
boot_mode pins are not effected by efuse (also BT_FUSE_SEL bit), BT_FUSE_SEL bit only control BT_CFG pins/efuse 0x450 to determine boot device type.
Can you readout SRC->SBMR2 register by debugger? its base address is 0x40C0_400C
We usually check this register to see whether boot mode setting is valid.