Question, i.MX6SX boot mode switching

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Question, i.MX6SX boot mode switching

跳至解决方案
4,223 次查看
Aemj
Contributor IV

Dear team,

I would like to ask about boot switching of i.MX6SoloX.

My customer wants to switch boot media below.

BOOT_MODE[1:0] can be configured by DIPS switch on their board.

When BOOT_MODE[1:0] = 10, i.MX6X on their board acts as Boot from SD card.

When BOOT_MODE[1:0] = 00, i.MX6X acts as Boot from eFuse mode.

And because eFuse parameters (except BT_FUSE_SEL bit) are configured as ‘Boot from QSPI’, then i.MX6SX boot from QSPI ROM when BOOT_MODE[1:0] is set to 00.

As a result, boot from QSPI/SD card can be switched by using BOOT_MODE[1:0] setting.

Is above scenario reasonable?

Thanks,

Miyamoto

标签 (1)
0 项奖励
回复
1 解答
3,719 次查看
RossMcLuckie
NXP Employee
NXP Employee

Hi,

Once you blow BT_FUSE_SEL only the internal eFuses will be used to select the boot device, so you are fixed to a single boot device (there is a BOOT lock fuse that can also be blown to prevent any further tampering with the BOOT_CFG eFuses, if this is not blown then eFuses not already blown ("1") can still be blown to change from 0 to 1, but there is no way to go back from 1 to 0).

The summary here is using eFuses is intended to support one boot device only.

If you wish to support two (or more) different boot devices you need to boot from the BOOT_CFG pins and select BOOT_MODE  0b10.

To allow multiple boot sources -

  • Use BOOT_MODE 0b10
  • Don't blow BT_FUSE_SEL
  • Use GPIO to set required BOOT_CFG settings

Regards

Ross

在原帖中查看解决方案

0 项奖励
回复
13 回复数
3,719 次查看
Aemj
Contributor IV

Hello Ross,

Thanks a lot for your kindly explanation!

BR,

Miyamoto

0 项奖励
回复
3,719 次查看
tomohirokawachi
Contributor II

Dear Igor-san,

Thanks for your answer.

Could you tell us any good ways to switch the following options by setting CPU external pins with fixed BT_FUSE_SEL ?

  option 1 : Boot from GPIO setting.
  option 2 : Boot from eFuse mode.

Best regards,

0 项奖励
回复
3,719 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Tomohiro

sorry, I am not aware of other boot options except

described in RM.

Best regards
igor

0 项奖励
回复
3,719 次查看
Aemj
Contributor IV

Hi Igor,

As the result, I understand that blowing out BT_FUSE_SEL(BT_FUSE_SEL=1) is needed to use FUSE parameters for selecting boot media.

Correct?

BR,

Miyamoto

0 项奖励
回复
3,719 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Miyamoto

yes blowing BT_FUSE_SEL=1 selects boot mode from fuses.

Best regards
igor

0 项奖励
回复
3,720 次查看
RossMcLuckie
NXP Employee
NXP Employee

Hi,

Once you blow BT_FUSE_SEL only the internal eFuses will be used to select the boot device, so you are fixed to a single boot device (there is a BOOT lock fuse that can also be blown to prevent any further tampering with the BOOT_CFG eFuses, if this is not blown then eFuses not already blown ("1") can still be blown to change from 0 to 1, but there is no way to go back from 1 to 0).

The summary here is using eFuses is intended to support one boot device only.

If you wish to support two (or more) different boot devices you need to boot from the BOOT_CFG pins and select BOOT_MODE  0b10.

To allow multiple boot sources -

  • Use BOOT_MODE 0b10
  • Don't blow BT_FUSE_SEL
  • Use GPIO to set required BOOT_CFG settings

Regards

Ross

0 项奖励
回复
3,719 次查看
tomohirokawachi
Contributor II

Dear igor-san and Ross-san,

Thank you so much for your kind reply!

0 项奖励
回复
3,719 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Miyamoto

yes this is reasonable but depends on BT_FUSE_SEL fuse:

pastedImage_1.jpg

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
3,719 次查看
SLICE
Contributor IV

Hi Igor,

Thanks for your support.

Actually, the customer tried to let i.MX6X go to boot from QSPI with BT_FUSE_SEL=0 and BOOT_MODE[1:0]=00. But it could not work.

And they saw Boot from QSPI was achieved by setting BT_FUSE_SEL=1.

They now think BT_FUSE_SEL=1 is needed to achieve boot from QSPI.

Is it true?

I think BOOT_MODE[1:0]=00 is enough for boot from QSPI if the other EFUSE parameters are set correctly for QSPI boot.

And they can change QSPI/SD boot by setting only BOOT_MODE[1:0] pads setting.

Could you tell me which is right?

Thanks,

Miyamoto

0 项奖励
回复
3,719 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Miyamoto

>Actually, the customer tried to let i.MX6X go to boot from QSPI with BT_FUSE_SEL=0

>and BOOT_MODE[1:0]=00. But it could not work.

this behaviour is described in sect.8.2.3 Boot From Fuses mode (BOOT_MODE[1:0] = 00b)

i.MX6SX Reference Manual
http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6SXRM.pdf

"If set to Boot From Fuses, the boot flow is controlled by the BT_FUSE_SEL eFUSE
value. If BT_FUSE_SEL = 0, indicating that the boot device (for example, flash, SD/
MMC) was not programmed yet, the boot flow jumps directly to the Serial Downloader."

Best regards
igor

0 项奖励
回复
3,719 次查看
tomohirokawachi
Contributor II

Dear Igor-san,

I am the customer of Miyamoto-san.
Thank you very much for your support.

We want to switch boot mode as Miyamoto-san said,

  When BOOT_MODE[1:0] = 10, i.MX6X on their board acts as Boot from SD card.
  When BOOT_MODE[1:0] = 00, i.MX6X acts as Boot from eFuse mode (we have set to QSPI).

However, if BT_FUSE_SEL = 1, we can not switch the modes by setting BOOT_MODE[1:0] because
  BOOT_MODE[1:0] = 10 -> Boot from eFuse mode (QSPI), not from the board settng (SD card)

  BOOT_MODE[1:0] = 00 -> Boot from eFuse mode (QSPI)

Moreover, if BT_FUSE_SEL = 0, we can not switch too.
  BOOT_MODE[1:0] = 10 -> Boot from serial downloader, not from the board settng (SD card)
  BOOT_MODE[1:0] = 00 -> Boot from eFuse mode (QSPI).

It seems there is no way to switch the modes by setting BOOT_MODE[1:0].
Is it right? If so, could you tell us another way to switch the modes by CPU external pins?

Best regards,

0 项奖励
回复
3,719 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Tomohiro

for case BT_FUSE_SEL = 1 all boot options are summarized in sect.8.2.3, 8.2.5 RM:

In Internal Boot mode (BOOT_MODE[1:0] = 0b10):
If BT_FUSE_SEL = 1, all boot options are controlled by the eFUSEs

In Boot From Fuses mode (BOOT_MODE[1:0] = 00b):
if BT_FUSE_SEL is blown (BT_FUSE_SEL = 1) ROM code performs an
internal boot according to eFUSE settings.

Best regards
igor

0 项奖励
回复
3,719 次查看
Aemj
Contributor IV

Hi Igor,

Does it mean that setting eFuse BT_FUSE_SEL into 1 is needed to achieve Boot from QSPI?

BR,

Miyamoto

0 项奖励
回复