需要配置君正 T23 方案 FLASH 工作在 1/4 线模式,
首先,要确认硬件设计是出于哪一种模式,
对于 4 线的硬件设计理论上是兼容 1 线模式的,而反过来则不兼容。
其次,在软件层面需要 U-Boot 与 Linux 进行对应驱动配置。
打开 U-boot 对应板级配置源码,isvp_*.h(与您编译配置有关)
打开选项 CONFIG_SPI_QUAD 表示使用 4 线模式,注释表示使用 1 线模式。
打开内核配置 *_defconfig 文件(与您编译配置有关)
如果选项 CONFIG_SPI_QUAD_MODE=y,则表示使用 4 线模式,CONFIG_SPI_STANDARD_MODE=y 则表示 1 线模式。
适用前提
本文用于君正 T23 平台的 SPI NOR Flash 一线/四线模式切换。发布前请补充实际 SDK,U-Boot,Linux 内核和 Flash 完整料号;不同原厂 SDK 分支的配置名和文件位置可能不同。四线模式需要硬件连接 IO0—IO3,相关管脚复用,上拉和 Flash 芯片 Quad/QE 支持也必须符合数据手册。即使 PCB 引出了四根数据线,也不能跳过这些检查。
U-Boot 与 Linux 配置
在当前板级编译配置对应的 isvp_*.h 中检查 CONFIG_SPI_QUAD:启用通常表示 U-Boot 使用四线模式,关闭则使用标准一线模式。然后检查内核实际使用的 *_defconfig:CONFIG_SPI_QUAD_MODE=y 对应四线,CONFIG_SPI_STANDARD_MODE=y 对应一线。配置名称应以当前 SDK 源码为准,并确认最终生成的 .config,不要只修改一个没有被构建系统引用的模板文件。
U-Boot 和内核必须分别核对。U-Boot 能读出内核,不代表 Linux 驱动已经使用相同模式;反过来,内核配置正确也无法修复 U-Boot 阶段读不到环境区或镜像的问题。
烧录,验证与回滚
修改前备份可启动固件,分区表和 U-Boot 环境,并保证串口及 USB 烧录工具可用。烧录后保存完整启动日志,确认 U-Boot 能识别 Flash 型号,容量并读取环境,Linux 启动后再核对 MTD 分区。对只读分区可连续读取两次并比较哈希;写入测试只能在专用测试分区进行,禁止直接覆盖 boot,kernel,rootfs 或 env。
至少执行多次冷启动,热重启和持续读写测试,观察是否出现 ID 识别失败,超时,校验错误或偶发启动失败。如果四线配置不能稳定启动,用 USB/串口恢复预先保存的一线模式固件,并同时恢复 U-Boot 和内核配置。只有在目标板,目标 Flash 和当前 SDK 上验证通过后,才把四线模式作为量产默认值。

