Bootmode Pins (Bootmode[1:0]) not changing boot state on our custom board including imxrt1176

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Bootmode Pins (Bootmode[1:0]) not changing boot state on our custom board including imxrt1176

980 Views
burhanhagi
Contributor III

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.

Tags (1)
0 Kudos
Reply
3 Replies

938 Views
burhanhagi
Contributor III

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.

 

913 Views
jay_heng
NXP Employee
NXP Employee

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.

0 Kudos
Reply

943 Views
jay_heng
NXP Employee
NXP Employee

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.

SBMR2.PNG

0 Kudos
Reply