Internal boot

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

Internal boot

Jump to solution
2,348 Views
mohammedazlum
Contributor IV

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

Labels (1)
1 Solution
1,612 Views
Yuri
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

10 Replies
1,612 Views
Yuri
NXP Employee
NXP Employee

  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!
-----------------------------------------------------------------------------------------------------------------------

1,612 Views
mohammedazlum
Contributor IV

Dear Yuri, Thanks for the reply.

As per your reply, can you go through below reply and share the feedback.

  1. During programming, we can set BT_FUSE_SEL =1, device will try to boot always from one booting media [ MMC/SD/SPI].
  2. When we set BT_FUSE_SEL =0, device can boot from any booting source according to the boot selection switch position. Consider for SPI 110XXXXX is the boot selecting positions.
  3. So the question is, Why BT_FUSE_SEL=0 called GPIO override mode ? When you set BT_FUSE_SEL =0 (The pins not at all configuring as GPIO purpose). Example if I set BT_FUSE_SEL=0, then EIM_DA0 will be configured as GPIO3_IO00 ?


Regards,

Azlum




0 Kudos
1,613 Views
Yuri
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

1,612 Views
mohammedazlum
Contributor IV

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

  1. When gpio_bt_sel is set, then EIM_DA1 will be set as SRC_BOOT_CFG01
  2. When gpio_bt_sel is clear, then EIM_DA1 will be set as GPIO3_IO01

Above two examples are correct ?

Regards,

Azlum

0 Kudos
1,612 Views
Yuri
NXP Employee
NXP Employee

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.

1,612 Views
mohammedazlum
Contributor IV

Yuri,

Which is GPIO Overrride pins, when set BT_FUSE_SEL =0  condition?

Regards,

Azlum

0 Kudos
1,612 Views
Yuri
NXP Employee
NXP Employee

  Please refer to Table 8-3 (GPIO Override Contact Assignments) and

Table 8-4 (Boot Options Control Selection) of the i.MX6 DQ Reference
Manual.

~Yuri.

0 Kudos
1,612 Views
mohammedazlum
Contributor IV

Dear Yuri,

I have checked 8.3.2 GPIO Boot Overrides in RM. Please confirm below image.

GPIO Override Pins _ eFuse pins.jpg
Regards,

Azlum

0 Kudos
1,612 Views
Yuri
NXP Employee
NXP Employee

This is just a terminilogy :
package pins, named EIM_DAx (also called as GPIO overridepins), 
and BOOT_CFGy as logical name of boot fuses. 

~Yuri.

1,612 Views
mohammedazlum
Contributor IV

Dear Yuri,

Thanks for the support...

Your all explanations are very useful to me....

Regards,

Azlum

0 Kudos