I have used iMX6Q peocessor for our project.
I wanted to use internal boot mode insted of efuse mode. For internal boot mode 0b10 value need to be set BOOT_MODE[1:0] register.
When i select internal boot, again i have two options;
1) BT_FUSE_SEL = 1 booting sources are controlled by eFuses.
2) BT_FUSE_SEL = 0 booting sources are controlled by GPIO override.
So the question is,
1) I hope the values of BOOT_MODE[1:0] will be set by boot mode setting switch externally.If so, when I set 00 in BOOT_MODE[1:0] by using external switch whether board will go to eFuse boot mode ? If it is goes to eFues mode, the CPU will be boot always from eFuses directly ?
or
explain when the values in BOOT_MODE[1:0] will be valid ?
2) When the values of BT_FUSE_SEL will be set? during programming the board or else when ?
3) What is GPIO override mode ? Whether do we need to configure the EIM siganls as GPIO or BOOT_CFG in GPIO override mode ?
Regards,
Azlum
已解决! 转到解答。
Section 60.6.3.1 (BOOT_MODE Pin Latching) and Figure 60-6 (Boot mode information)
of the i.MX6 DQ Reference Manual clarifies the issue :
"The exact boot sequence is controlled by the values of the BOOT_MODE pins on this device.
The value of the BOOT_MODE pins will be latched after the OCOTP_CTRL asserts the
fuse read completion flag. After latching, the values of the BOOT_MODE pins are used
to determine the booting options of the core as described in the SRC_SBMRx registers.
The boot mode general purpose bits can be provided to the SRC from either e-fuses or
GPIO signals. The gpio_bt_sel e-fuse defines the source to be used to derive the boot
information. When gpio_bt_sel is set, e-fuses are used. When cleared, GPIO signals are
used."
Basically no need to configure pins for GPIO mode, since just pin states are sampled.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Please look at my comments below.
1.
> I hope the values of BOOT_MODE[1:0] will be set by boot mode setting switch externally.
> If so, when I set 00 in BOOT_MODE[1:0] by using external switch whether board will go to
> eFuse boot mode ? […]
BOOT_MODE[1:0] = 00 provides only two possible scenarios for boot, controlled by the BT_FUSE_SEL :
“If BT_FUSE_SEL = 0, indicating that the boot device (for example, Flash, SD/MMC) has not
yet been programmed, the boot flow jumps directly to the Serial Downloader.
If BT_FUSE_SEL = 1, the normal boot flow is followed, where the ROM
attempts to boot from the selected boot device.”
2.
> When the values of BT_FUSE_SEL will be set? during programming the board or else when ?
Yes, BT_FUSE_SEL may be burned by customers when they want (but only once) via the
Serial Downloader.
3.
> What is GPIO override mode ? Whether do we need to configure the EIM signals as GPIO
> or BOOT_CFG in GPIO override mode ?
For debugging it may be convenient to use external switches to select different boot modes.
GPIO override mode is intended for such case. No need to configure EIM signal for it. It is done
automatically when BOOT_MODE[1:0] = 10 and BT_FUSE_SEL = 0.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear Yuri, Thanks for the reply.
As per your reply, can you go through below reply and share the feedback.
Regards,
Azlum
Section 60.6.3.1 (BOOT_MODE Pin Latching) and Figure 60-6 (Boot mode information)
of the i.MX6 DQ Reference Manual clarifies the issue :
"The exact boot sequence is controlled by the values of the BOOT_MODE pins on this device.
The value of the BOOT_MODE pins will be latched after the OCOTP_CTRL asserts the
fuse read completion flag. After latching, the values of the BOOT_MODE pins are used
to determine the booting options of the core as described in the SRC_SBMRx registers.
The boot mode general purpose bits can be provided to the SRC from either e-fuses or
GPIO signals. The gpio_bt_sel e-fuse defines the source to be used to derive the boot
information. When gpio_bt_sel is set, e-fuses are used. When cleared, GPIO signals are
used."
Basically no need to configure pins for GPIO mode, since just pin states are sampled.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear Yuri,
When gpio_bt_sel is set, SRC_BOOT_CFG will be configured during booting.
When gpio_bt_sel is clear, GPIO will be configuring.
Example; EIM_DA1
Above two examples are correct ?
Regards,
Azlum
Azlum,
During POR assertion pin configuration is not defined yet, therefore gpio_bt_sel
just defines what data are read to SRC_SBMR1 register (which is used as SRC_BOOT_CFG source) :
EIM pins or fuses. After reset negation, pin states are configured for their default state.
Please refer to the Datasheet(s) what is defalut state.
Regards,
Yuri.