i.mx rt1062 不能从外部 QSPI FLASH启动问题

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

i.mx rt1062 不能从外部 QSPI FLASH启动问题

4,389 Views
cams
Contributor I

Hi,
我在i.mx rt1062系统应用中通过flexSPIA1连接一片GD25Q64C的flash,在SDK_2.70_EVK-MIMXRT1060 IAR led_blinky工程flexspi_nor_debug中可以用DAPLink Download并运行,但是断电后再上电系统却不能从QSPI FLASH中启动运行,用MCU NXP Boot Unitily 读出eFuse发现0x460寄存器值为0x00000008,即DIR_BT_DIS=1(1 - Direct boot from external
memory is not allowed),是不是因为DIR_BT_DIS=1才不能从外部QSPI FLASH 启动的?

我的启动设置为:boot_mode[1:0]=10b,

                             boot_cfg1[7:0]=0x00,

                             boot_cfg2[3:0]=0x0; 

IAR 中有设置:   XIP_EXTERNAL_FLASH=1
                            XIP_BOOT_HEADER_ENABLE=1
                            CPU_MIMXRT1062DVJ6A

Labels (1)
0 Kudos
9 Replies

4,064 Views
cams
Contributor I

感谢您的回复!

不知道什么原因用NXP-MCUBootUtility-2.2.0软件能加载到flashloader,但是识别不了GD25Q64C芯片,所以下载不了image,如图1:pastedImage_4.png我确定led debug的地址是从外部qspi_flash运行的,如下图:pastedImage_5.png

我用jflash软件用jlink也能成功将NXP-MCUBootUtility-2.2.0\apps\NXP_MIMXRT1060-EVK_Rev.A1\led_blinky_0x6000a000.srec 烧写到GD25Q64C flash中,但是也不能成功启动运行。问题出在哪里呢?

0 Kudos

4,064 Views
kerryzhou
NXP TechSupport
NXP TechSupport

楼主你好!

你用MCUBootUtility tool连接你的芯片是不是能连上呢?

看看log是什么信息?我看你之前能读fuse,说明你已经失败了你的QSPI flash了。

但是看你左下角的memory信息好像并没有读出来,我看你的QE位置也配置的对的。

另外,你有没有参考我们的AN12183 How to Enable Debugging for FLEXSPI NOR Flash.pdf

https://www.nxp.com/docs/en/nxp/application-notes/AN12183.pdf 

https://www.nxp.com/webapp/Download?colCode=AN12183SW&location=null 

直接读写你的外部flash是否都可以成功?

还有,你能用IAR debug, 你读下你的0X60000000, 0X60001000, 看看这些地方的IVT, 等信息, 和你的0X60002000是否能对应起来。你的app起始是0X60002000吗?

我现在是在家办公,所以手里没有你的芯片,后续如果你还有问题,等我会公司,找看看是否有你的QSPI,然后也帮你试试。

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

4,064 Views
cams
Contributor I

感谢Kerry Zhou!

问题已经解决,是flexspi_nor_config里的DUMMY_SDR周期数配置错了,把它改成0x06就可以正常启动了;但是用MCUBootUtility tool连接却无论如何就识别不出GD25C64C flash。

0 Kudos

4,064 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi rayandy fan,

     很高兴听到你的问题解决了。

     你说的是下面图中黄色快的0X06吗?

pastedImage_3.png

关于MCUBootUtility连接的问题,我觉得还是可能和flashloader有关,就如AN12183 中提到的:

pastedImage_1.png

所以,可能还是需要修改下对应的flashloader,然后再替换掉MCUbootUtility里面的flashloader.

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

4,064 Views
cams
Contributor I

我是修改了图中黄色部分的0x06,它原来是0x08。pastedImage_3.png

稍后我再试一下MCUBootUtility。

0 Kudos

4,064 Views
kerryzhou
NXP TechSupport
NXP TechSupport

楼主你好!

我看了我们SDK默认就是0X06, 你说的原来是0X08,你的代码是SDK2.7.0吗?

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

4,064 Views
cams
Contributor I

哦,0X08那是我最先开始改的。再说明一下,SDK_2.70_EVK-MIMXRT1060里边的led_blinky例子用的flashloader用在GD25C64C qspi_flash FLASH_SPI_4PAD是不行的,需要根据AN12183中修改flashloader,把led_blink原来的flashloader换掉才可以正常运行。

0 Kudos

4,063 Views
kerryzhou
NXP TechSupport
NXP TechSupport

好的,感谢你的经验分享!

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

4,064 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi rayandy fan,

   楼主你好!

   实际上你提到的DIR_BT_DIS=1, 0x460寄存器值为0x00000008,并不会影响功能。

  

pastedImage_1.png

pastedImage_2.png

你看到,我这边读出来的数据和你一样,我是官方的MIMRT1060-EVK 板子。

你说的debug没有问题,你有没有检查你led debug的地址,是否是外部flash?

另外,我建议你直接用MCUBootutility自带的app烧录试试,防止你生成的image有问题。

NXP-MCUBootUtility-2.2.0\apps\NXP_MIMXRT1060-EVK_Rev.A1

你可以选择led_blinky_0x6000a000.srec 试试。

如果还有问题,欢迎继续交流!

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos