imxrt1064 ROM bootloader Check Boot Mode logic further explanation

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

imxrt1064 ROM bootloader Check Boot Mode logic further explanation

Jump to solution
498 Views
djarin
Contributor II

yeo_0-1708675612197.png

Hi, above diagram is from imxrt1064 RM page 200, and in page 198, there says:

"The boot ROM uses the state of the BOOT_MODE and eFUSEs to determine the boot
device. For development purposes, the eFUSEs used to determine the boot device may be
overridden using the GPIO pin inputs."

1. Can I know what are the Factory default settings? will GPIO has higher priority than eFUSEs by default?

2. How GPIO can overridden eFUSEs? and what are the settings to be done to skip the GPIOs checks?

3. What does the "and/or" exactly mean in the diagram?

Thanks

Labels (1)
Tags (3)
0 Kudos
1 Solution
488 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @djarin ,

  Thanks for your interest in the NXP MIMXRT product, I would like to provide service for you.

   Answer your questions:

1. Can I know what are the Factory default settings? will GPIO has higher priority than eFUSEs by default?

=>Answer: it is determined by your configuration.

If you don't do the fuse burn, then it will determined by the GPIO pin feature, this is the default situation.

As fuse burn can't be back, just can be from 0 to 1.

fuse default is all 0.

2. How GPIO can overridden eFUSEs? and what are the settings to be done to skip the GPIOs checks?

=>Answer: Not overridden eFuse, you can consider, if you burn the fuse, select boot from the fuse, then it will use the fuse configuration.

If you don't, then it will use GPIO.

Check this RM content, you will be more clear:

kerryzhou_0-1708684020018.png

 

 

3. What does the "and/or" exactly mean in the diagram

=>Answer:  some CFG can use the fuse bit even when you use the GPIO as the BOOT_CFG.

Eg, these fuse:

kerryzhou_1-1708684166228.png

 

Also can be used with GPIO boot method.

Just the CFG fuse + BT_FUSE_SEL=1, and BOOT_MODE =00, will use the boot from fuse, and use fuse CFG related data.

 

Wish it helps you!

If you still have question about it, please kindly let me know.

If your question is solved, please help me to mark the correct answer, just to close this case.

Any new issues, welcome to create the new question post, thanks.

Best Regards,

Kerry

View solution in original post

0 Kudos
5 Replies
434 Views
djarin
Contributor II

Hi @kerryzhou ,

Thank for the reply, I've made a brief summary to confirm my understanding, let me know if this is correct:

Mainly 2 settings involved:

  • BT_FUSE_SEL = fuse bit, located at SRC_SBMR2
  • BOOT_MODE = digital IO pin (GPIO_AD_B0_04/BOOT_MODE0 , GPIO_AD_B0_05/BOOT_MODE1)

yeo_0-1709113524418.png

 

Another question is I understand that the boot ROM will try to locate the FCB at 0x70000000 to have initial QSPI flash config.

I tried appending a mkimage header (64bytes length) at the starting of the binary file (hex/bin).

Which also mean that this header file will be on top of the FCB/IVT/DCD.

Is there an option for me to offset this 64 bytes, so that the ROM bootloader can locate the FCB at 0x70000040?

Thanks

0 Kudos
407 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @djarin ,

  To RT1064, the FCB is from the offset 0:

kerryzhou_0-1709279216054.png

FCB is fixed, you can't use it, but if you dont use the SDRAM, you can use the DCD area as your own mkimage heade.

Wish it helps you!

Best Regards,

Kerry

 

0 Kudos
340 Views
djarin
Contributor II

Hi @kerryzhou ,

We need the DCD area for sdram, i've came across this document AN12255: https://www.nxp.com/docs/en/application-note/AN12255.pdf

mentioning about flash remapping, could this be feasible for a XIP boot image that require FCB?

thanks

0 Kudos
328 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @djarin ,

   To the remap, the AN12255 already give you the answer for the second app:

kerryzhou_0-1709607413519.png

  The FCB just need to program once, the secondary app, don't need to add the FCB.

  If you need to add the DCD, just add it in your app.

Wish it helps you!

If you still have question about it, please kindly let me know.

If your question is solved, please help me to mark the correct answer, just to close this case, thanks.

Any new issues, welcome to create the new question post.

Best Regards,

Kerry

 

0 Kudos
489 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @djarin ,

  Thanks for your interest in the NXP MIMXRT product, I would like to provide service for you.

   Answer your questions:

1. Can I know what are the Factory default settings? will GPIO has higher priority than eFUSEs by default?

=>Answer: it is determined by your configuration.

If you don't do the fuse burn, then it will determined by the GPIO pin feature, this is the default situation.

As fuse burn can't be back, just can be from 0 to 1.

fuse default is all 0.

2. How GPIO can overridden eFUSEs? and what are the settings to be done to skip the GPIOs checks?

=>Answer: Not overridden eFuse, you can consider, if you burn the fuse, select boot from the fuse, then it will use the fuse configuration.

If you don't, then it will use GPIO.

Check this RM content, you will be more clear:

kerryzhou_0-1708684020018.png

 

 

3. What does the "and/or" exactly mean in the diagram

=>Answer:  some CFG can use the fuse bit even when you use the GPIO as the BOOT_CFG.

Eg, these fuse:

kerryzhou_1-1708684166228.png

 

Also can be used with GPIO boot method.

Just the CFG fuse + BT_FUSE_SEL=1, and BOOT_MODE =00, will use the boot from fuse, and use fuse CFG related data.

 

Wish it helps you!

If you still have question about it, please kindly let me know.

If your question is solved, please help me to mark the correct answer, just to close this case.

Any new issues, welcome to create the new question post, thanks.

Best Regards,

Kerry

0 Kudos