0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Serial NAND i.MX RT1xxx启动

恩智浦MCU加油站 来源:未知 2023-08-17 08:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着技术的不断发展,在文件系统应用或者多媒体数据存储方面而言 Raw NAND 已经不是绝对优势了。最近越来越多的客户需要在Serial NAND 操作文件系统,并实现应用代码启动。小编收到很多关于i.MXRT1xxxSerial NAND 启动的咨询问题,这个启动设备突然火热起来了~借此机会,今天跟大家介绍一下 Serial NAND 上制作、下载、启动程序的方法。
  • Note:文中贴图、代码主要以 i.MXRT1050 为例,其余 i.MXRT1xxx 系列原理类似

支持的Serial NAND

SerialNAND 对应的芯片型号很多,如果你在选型时不确定选择哪一款i.MXRT Serial NAND 时,建议可选下面四款芯片,小编均已实测过:
  • Macronix MX35LF2G24AD (120MHz,x4 bits, 2KB Page/128KB Block/2Gb Device,8-bit/544byte ECC, 3.3V)

  • Winbond W25N01GV (104MHz,x4 bits, 2KB Page/128KB Block/1Gb Device,1-bit/528byte ECC, 3.3V)

  • GigaDevice GD5F1GQ5UEYIG (133MHz,x4 bits, 2KB Page/128KB Block/1Gb Device,4-bit/528byte ECC, 3.3V)

  • Micron MT29F1G01ABA (133MHz,x4 bits, 2KB Page/128KB Block/1Gb Device,8-bit/Sector ECC, 3.3V)

需要注意的是,与 《i.MXRT从Raw NAND启动》 里既可使用纯软件 ECC 也可利用 Flash 自带硬件ECC特性,不同的是 Serial NAND 启动必须依赖Flash 自带硬件 ECC。

Serial NAND硬件连接

目前i.MXRT1010/1024/1064 不支持 Serial NAND 启动,其余 i.MXRT1xxx 都可以支持的。其中 i.MXRT10xx 系列只支持一组引脚连接组合,而 i.MXRT11xx 则支持多组引脚连接组合。i.MXRT1050 BootROM 支持如下 pinmux 来连接 Serial NAND 去启动:

wKgZomToRoyAMCmiAAKhvp2GZhQ567.png

如下是IMXRT1050EVK12_Rev.A 板上四线 QSPI Flash 连接设计,板载默认 U33 芯片是 Serial NOR Flash,可以换成同封装 Serial NAND,小编就将其换成了 MX35LF2G24AD 来做测试,当然 FLASH_VCC 也相应改成了 3.3V:

wKgZomToRoyAcwrRAAGuROuDrFc415.png

Serial NAND加载启动过程

我们知道Serial NAND 中仅能放置 Non-XIP Application(链接到内部 SRAM 或者 外部 RAM 空间),其启动加载流程跟 《从 Serial(1-bit SPI)NOR/EEPROM恢复启动》加载流程相近(参考文章第 3 小节)。

i.MXRTBootROM 对于 Serial NAND 启动流程处理和对于 Raw NAND 启动处理几乎是一样的,都是依赖 FCB 和 DBBT 这两个数据结构(当然 Serial NAND 和 Raw NAND 里对于这两个数据结构具体成员定义有差异)。关于 FCB 和 DBBT 的使用,小编在《i.MXRT从Raw NAND启动》一文中三、四小节讲得很清楚,这里不再赘述。

i.MXRT1050参考手册 System Boot 章节里附上了上电启动时 BootROM 代码搜索 FCB 和DBBT 的流程,能找到这两个数据,应用程序就能够被正常加载。

这里需要特别注意,FCB 和 DBBT 是在配套 Flashloader 执行过程中动态生成的,因为涉及 NAND Flash 里具体坏块分布信息,所以无法在 PC 端直接制作 FCB 和 DBBT,这就意味着我们不能像 NOR Flash 那样提前得到一个完整的启动头(FCB&DBBT&IVT&BD)的 NAND bootable image。

wKgZomToRoyAXVwZAAHAUykBw3k391.png

下载Application进Serial NAND

现在假定你已经制作好一个 Bootable image 并且使用 blhost 工具与 Flashloader 建立了基本通信,正要开始将 Bootable image 下载进 Serial NAND。此时我们只需要提供简化的 12 - 44byte 配置数据就可以完成 Serial NAND 的全部配置,下面是适用 MX35LF2G24AD 的 Application 下载更新示例:
// 在 SRAM 里临时存储 Serial NAND 配置数据(FCB Opt)
blhost -u -- fill-memory 0x20202000 0x4 0xC2000103 // searchCount=2, searchStride = 64 pages, Address type: Block Address, Option Block size: 3 long words
blhost -u -- fill-memory 0x20202004 0x4 0x2020200C // nand opt address
blhost -u -- fill-memory 0x20202008 0x4 0x4004     // image0 从 Block 4 开始,长度最大 4 个 Block


// 在 SRAM 里临时存储 Serial NAND 配置数据(NAND Opt)
blhost -u -- fill-memory 0x2020200C 0x4 0xC0020023 // Flash size: 2Gbit, 1 Plane, 64 Pages/Block, 2KB Page Size, Max Freq:60MHz


// 使用 Serial NAND 配置数据去配置 FlexSPI 接口以及写入完整 FCB, DBBT 数据
blhost -u -- configure-memory 0x101 0x20202000

上述fill-memory 命令中 FCB Opt 配置数据组织详见下表:

wKgZomToRoyAUZFPAALtIhoyNm4738.png上述fill-memory 命令中 NAND Opt 配置数据组织详见下表:

wKgZomToRo2Aff7xAAJzIyaIZgI982.png上表12 - 44byte 数据提供的配置信息主要是 FCB 和NAND 属性。configure-memory 命令执行成功之后,底下只需要将 Bootable image 从 Serial NAND 对应 Block 地址处开始下载即可,具体步骤如下:
// 擦除 Serial NAND 并将 image 下载进 Serial NAND
blhost -u -- flash-erase-region 0x4 0x4 0x101     // 从第4个Block开始擦除,范围为4个Block长度
blhost -u -- write-memory 0x4 bt_image.bin 0x101  // 从第4个Block开始下载含 ivt, bd 的镜像文件

当然以上所有繁杂的命令行操作都可以使用 MCUBootUtility 工具(v5.2.1及以上)来一键完成:

wKgZomToRo2AceeFAAMFVYgIHww827.png

进入Serial NAND启动模式

Application已经被成功下载进 Serial NAND 卡之后,此时我们便可以开始设置芯片从 Serial NAND 启动。

先确定BOOT_MODE[1:0]=2'b10,即芯片处于 Internal Boot 模式,再来选择 Boot Device,Boot Device 由 BOOT_CFG1[7:4] 这四个 pin 的输入状态决定,其中 Serial NAND 启动模式为 4'b11xx。

配置eFuse启动Serial NAND

设置好芯片启动模式是从 Serial NAND 启动之后,我们还需要最后关注一下与 Serial NAND 相关的具体特性配置,主要集中在芯片内部 eFuse 0x6e0/0x450 区域里,根据前面配置,这里我们只需要设置BOOT_SEARCH_COUNT bit 为 1,其余保持默认 0 即可。

wKgZomToRo2AJySXAAJPLweRZdc152.png

这里单独解释下 COL_ADDRESS_WIDTH 默认 0 即 12bits,看起来对应了 4KB Page size,但是因为 ECC 特性,这样设置下的低 2KB page 空间存真实数据,高 2KB page 空间其实属于所谓 Spare 空间,会被 Flash 自动用来存放 ECC 校验码,不过这个 Spare 空间有效范围 64byte-128byte 不等(对于 MX35LF2G24AD 则是 128)。

wKgZomToRo2AYTTFAAC3czxulO0203.png

上述所有步骤全部完成之后,复位芯片你就应该能看到你放在 Serial NAND 里的 Application 已经正常地启动了。感兴趣的伙伴可以实测一下~

END

更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号

wKgZomToRo2AGEAvAABCdkRE230958.jpg      

NXP客栈


恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

长按二维码,关注我们

恩智浦MCU加油站


这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

wKgZomToRo2AJTwfAAATNlPH08Y807.jpg  

长按二维码,关注我们


原文标题:Serial NAND i.MX RT1xxx启动

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18618

    浏览量

    387341
  • 恩智浦
    +关注

    关注

    14

    文章

    6051

    浏览量

    134859

原文标题:Serial NAND i.MX RT1xxx启动

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    i.MX RT1180实现EtherCAT+伺服控制的终极实践

    今天继续为大家介绍i.MX RT1180实现EtherCAT+伺服控制的终极实践:双电机控制与Ethercat资源使用。
    的头像 发表于 11-26 08:19 2491次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180实现EtherCAT+伺服控制的终极实践

    使用恩智浦i.MX RT700跨界MCU打造智能手表

    智能手表已经成为我们生活中不可或缺的可穿戴设备。随着技术和市场的演进,如今的智能手表功能越来越丰富,而用户对其续航能力的期望也越来越高。应对这一挑战,恩智浦专为可穿戴、消费级医疗、智能家居和HMI设备而设计的i.MX RT700跨界MCU,可堪重任!
    的头像 发表于 10-27 09:33 830次阅读

    恩智浦i.MX RT1180跨界MCU助力下一代伺服控制系统

    今天我们将聚焦一项正在重塑工业自动化边界的技术组合 —— 基于NXP的i.MX RT1180微控制器,实现EtherCAT通信与高性能伺服控制的融合方案。
    的头像 发表于 09-28 14:16 4287次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界MCU助力下一代伺服控制系统

    恩智浦i.MX RT1180跨界处理器如何选型

    i.MX RT1180 跨界处理器包含众多的型号,以满足客户对不同性能与价格的需求,今天就先给大家说说如何选型。
    的头像 发表于 09-28 14:01 2044次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180跨界处理器如何选型

    恩智浦MCU方案 单颗i.MX RT1180实现EtherCAT+伺服控制

    介绍基于单颗i.MX RT1180芯片的EtherCAT+伺服电机控制方案-伺服控制板硬件电路资源介绍,即为下图中的Servo Motor Driver Board。
    的头像 发表于 09-11 14:27 5.3w次阅读
    恩智浦MCU方案 单颗<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1180实现EtherCAT+伺服控制

    基于恩智浦i.MX RT芯片内部RAM运行LVGL工程

    随着越来越多用户选择i.MX RT系列芯片制作产品,产品的需求以及芯片的用法也越来越多。本文将介绍在i.MX RT平台中,如何创建LVGL项目并将其运行在内部SRAM而非SDRAM上。
    的头像 发表于 07-01 09:33 2198次阅读
    基于恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>芯片内部RAM运行LVGL工程

    如何实现安卓与恩智浦i.MX RT1170的无线投屏与控制

    Scrcpy是一款免费开源的软件,支持将安卓端屏幕投影到其他设备,并支持被投屏设备对安卓的反向控制。基于ADB工具,安卓端无需安装任何软件,延迟低,稳定性好。现在,安卓也可投屏到恩智浦i.MX RT1170上。
    的头像 发表于 06-26 09:53 1942次阅读
    如何实现安卓与恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170的无线投屏与控制

    i.MX RT系列中FlexSPI DQS信号引脚配置GPIO方法

    i.MX RT060项目(采用QSPI Flash)的实际应用中,有客户反馈,其在设计阶段并未预留DQS信号引脚,而是将该引脚作为GPIO用于控制关键外设的开关,这导致程序无法正常运行。在此背景下
    的头像 发表于 06-16 11:30 1279次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列中FlexSPI DQS信号引脚配置GPIO方法

    如何禁用i.MX RT1170 MCU中的M4内核?

    如何禁用 i.MX RT1170 MCU 中的 M4 内核? 您能否提供具体的可行方法? 或者是否可以将内核的工作时钟频率降低到 0 ?
    发表于 04-09 07:28

    NXP基于i.MX 91应用处理器打造的FRDM i.MX 91开发板特性参数详解

    FRDM i.MX 91开发板。该开发板基于i.MX 91应用处理器打造,专为加速工业与物联网的开发而设计,提供了一种经济高效、安全且具有多种连接选项的解决方案。
    的头像 发表于 03-21 09:37 12.5w次阅读
    NXP基于<b class='flag-5'>i.MX</b> 91应用处理器打造的FRDM <b class='flag-5'>i.MX</b> 91开发板特性参数详解

    i.MX RT 1176上正常运行代码时与使用IAR调试代码时存在一些奇怪的差异,为什么?

    ,并且在调试时一切都按预期工作,但我发现当处理器正常启动时,它根本不使用重置向量中的 SP 值,而是将其设置为(大约)0x20241d80。 我的理解是,i.MX RT 1176 中的 BOOT
    发表于 03-17 07:26

    NXP i.MX 93 开发板#提供高效的机器学习 支持高能效的边缘计算

    Wi-Fi ^®^ 和蓝牙功能,非常适合工业和物联网应用。其主要功能包括HDMI显示接口、LPDDR4/LPDDR4X存储器、用于快速启动的eMMC存储器、PMIC和扩展选项。该板支持面向i.MX处理器
    的头像 发表于 03-10 15:30 2534次阅读
    NXP <b class='flag-5'>i.MX</b> 93 开发板#提供高效的机器学习 支持高能效的边缘计算

    恩智浦推出FRDM i.MX 93开发板

    备受嵌入式开发者青睐的恩智浦FRDM开发平台,迎来了一位新成员——FRDM i.MX 93开发板,这也是第一块配备i.MX MPU的FRDM开发板,意味着强大的FRDM生态合作体系,已经扩展到i.MX应用处理器。
    的头像 发表于 02-21 14:22 2929次阅读

    i.MX RT处理器上使用PXP实现缩放和旋转组合操作

    本文主要探讨如何使用PXP实现缩放和旋转组合操作,PXP是NXP推出的一个2D图形加速器,主要完成对图像的数据格式转换、固定角度旋转(90°,180°,270°),任意比例缩放、混色,移位以及翻转等功能。运行平台为i.MX RT1170/1160/1060/1050/10
    的头像 发表于 02-20 10:53 1573次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>处理器上使用PXP实现缩放和旋转组合操作

    恩智浦i.MX 94应用处理器如何变革工业和汽车连接

    恩智浦半导体发布i.MX 94系列应用处理器,为工业和汽车连接设定了新的标准。作为i.MX 9系列应用处理器的最新成员,i.MX 94旨在提供高性能和低延迟的实时计算能力,这是工业自动化和汽车信息服务应用的关键功能。
    的头像 发表于 01-17 10:51 1541次阅读