你好,
硬件:
- i.MX8MQ(REV A0),基于 EVK 设计的定制板
- QSPI 或非:Micron MT25QL256A(32MB,3.3V,四路连接)
- 电路板支持包。Yocto Scarthgap、NXP 电路板支持包。、U-启动 2024.04 (u-启动-imx)
目标:从 FlexSPI 或非闪存启动启动加载程序(SPL + ATF + U-Boot)。
内核和根文件系统仍然保留在 eMMC 上。
有效的方法:
- U-启动(通过 uuu SDP/SDPV 加载到 RAM 中)运行正常
- “sf probe”正确检测到闪存:mt25ql256a,32 MiB
- U-启动 可以可靠地读取和写入闪存(已通过
“sf protect unlock”之后的回读测试验证)
- 镜像版本使用了 IMXBOOT_TARGETS = "flash_evk_flexspi"
闪存布局(已通过读取芯片数据验证):
0x000000:FCFB 标头 - “qspihdr 检查”报告
“在 Q(F)SPI 中找到启动配置头”
标签 = 42464346,版本 = 56010000
0x001000: IVT - d1 00 20 41,入口 = 0x007E1000,
boot_data = 0x007E0FE0,self = 0x007E0FC0
0x060000:U-Boot 正确的 FIT(d00dfeed),匹配
CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000
问题:
启动开关设置为 QSPI/FlexSPI 启动,并使用 USB 电缆
物理断开连接后,板无法启动。什么都没有
打印在串口控制台上(SPL 横幅从未出现),并且
ROM 回退到串行下载模式:
uuu -lsusb
2:1 MX8MQ SDP:0x1FC9 0x012B NXP 闪存
BT_FUSE_SEL 未熔断;启动配置通过 GPIO 完成。
启动引脚。
我已经尝试过:
- 两种标头格式:scripts/qspi_header(c0ffee01 标签)和
scripts/fspi_header(FCFB 标签)。修复了 soc.mak,使其
flash_evk_flexspi 使用偏移量为 0 的 fspi_header。
- 改变 FCFB 参数:sflashA1Size、serialClkFreq(50MHz -> 20MHz),
dataSetupTime/dataHoldTime,sflashPadType
- "uuu -b qspi"(官方内置脚本)
- "qspihdr update safe" 和 "qspihdr init
- 完全擦除闪存与写入完整图像:
启动行为基本相同(SDP 出现于之后)。
(约 1.6 秒 vs 约 1.8 秒),这表明 ROM 可能没有被读取。
完全不开闪光灯。
问题:
1.i.MX8MQ 启动 ROM 是否支持从串行 或非 卡启动
是否支持通过 FlexSPI 进行闪存刷新?我拥有的参考手册部分
列出了与非闪存和 SD/MMC 作为引导设备,但我无法
找到列出的 FlexSPI/QSPI 或非。i.MX8MM/8MN 文档似乎
可以描述一下,但我不太确定 8MQ。
2. 如果支持,预期的闪存布局具体是什么?
当 FCFB 为真时,IVT 应该位于偏移量 0x400 还是 0x1000?
位于 0x0 处?
3. 应选择正确的 BOOT_MODE / BOOT_CFG 组合。
i.MX8MQ 上采用 FlexSPI 或非 启动?
4. 关于 REV A0 硅片,是否存在任何已知的勘误?
FlexSPI 启动?
谢谢!
是否有绝对的方法可以从 QSPI 或非 Flash 启动 i.MX8MQ,同时将 Linux 内核和根文件系统保留在 eMMC 上?我们的硬件设计已经围绕这种架构版本,因此这对我们来说非常重要。
您好,
请主要参考RM中的信息;i.MX8MQ不支持QSPI启动。
Zhiming_Liu_0-1785725904605.png
此致,
志明
你好,我正在做类似的工作。
同一文档中的某些章节提到了一些使用 SPI 的启动选项。
您能否详细说明一下?
onurgoksu_0-1785737312799.png
onurgoksu_1-1785737654143.png
第六章文档存在问题
有关支持的引导设备,请参阅6.1 系统启动。
关于 1.6 主要启动选项,看起来像是文档残留物。
此致,
志明
尊敬的恩智浦技术支持团队:
我们想对 i.MX8MQ 的 QSPI 启动支持文档提出严重关切。
工程师在制定硬件设计决策时,主要依据参考手册作为权威资料。当参考手册中列出或暗示支持某个启动源时,开发团队完全有理由根据该信息来设计电路板。
这并非一个微小的印刷错误。启动源的选择直接影响原理图设计、PCB布局、元器件选择、制造、固件架构、恢复策略和产品验证。因此,关于 QSPI 启动能力的错误陈述可能会导致大量的工程时间损失、额外的原型修改、进度延误和巨大的经济损失。
尤其令人担忧的是,自 2017-2018 年左右以来,NXP 社区似乎已经提出了类似的问题和反馈,但相关文档多年来显然仍然不清楚或不正确。如果 NXP 知道 i.MX8MQ 启动 ROM 不支持从 QSPI 直接启动,那么应该在参考手册、设备勘误表、应用笔记和产品文档中明确说明这一限制。
对于专业和商业硬件设计中使用的元器件而言,如此关键的模糊不清的问题多年未得到解决是不可接受的。客户必须能够信任官方参考手册中提供的信息。
因此,我们要求对以下几点作出明确正式的答复:
我们坚信,这个问题需要的不只是在非正式的论坛上做出回应。正式的文档更正和明确的技术通知是必要的,以防止其他工程团队遭受同样的时间和经济损失。
请将此事上报给 i.MX8MQ 产品工程和文档团队,并提供权威的书面说明。
你好@Zhiming_Liu , @ayse-yilmaz
我找到了以下与此问题相关的主题: https://community.nxp.com/t5/i-MX-Processors/Does-i-MX8M-support-boot-from-QSPI/mp/904429#M136467
但技术支持人员提出的解决方案是:“出于开发目的,可以使用 GPIO 引脚输入来覆盖用于确定引导设备的 eFUSE”,但启动 ROM 无论如何都不支持这种做法。我有点困惑。为什么硬件支持,启动 ROM 却不支持?
我猜想,尽管硬件和文档都齐全,但由于 ROM 的原因,还是无法从 QuadSPI 启动。我的理解对吗?请详细说明。
谢谢,
奥努尔
此致