Edit online

SPI NOR 启动

对于 SPI NOR 设备,预留两个的启动分区,用于保存第一级引导程序,每个分区大小 128 KB。 启动时, BROM 首先尝试从第一个分区读取启动镜像,如果检验失败则尝试从第二个分区读取启动镜像。如果都失败,则从该设备启动失败。

区域 大小位置
Partition0 256 KB (0~256 KB)
Partition1 256 KB (256 KB~512 KB)
…… ……


1. SPI NOR 启动流程
注:

Partition1 并不是必须的,方案可根据实际情况安排该区域的用途。

兼容性处理

BROM 阶段,从 SPI NOR 启动时,使用下列参数:

线宽 1 线 QUAD SPI 的读命令,各家要求不尽相同
读命令 03h 03h 命令是所有厂家都支持的命令
频率 24 MHz 为了稳定可靠

4-Byte-Address Mode 的支持

对于容量大小为 16 MB 及以下的 SPI NOR,访问时通常使用 3-Byte-Address Mode,但对于 16 MB 以上的 Flash 需要使用 4-Byte-Address Mode 才可以访问到 16 MB 以上的存储空间。SPI NOR 可以设置上电即进入 4-Byte-Address Mode, 如果 SPINOR 颗粒做了上述设置,BROM 需要按照该模式访问数据,才可以正确读取。

对于 BROM 而言,4-Byte-Address Mode 的挑战在于不同品牌的 SPI NOR 在如何进入、退出 4-Byte-Address Mode 上的做法不一致,有些是可以设置进入 4-Byte-Address Mode,并且断电后保持,即上电即为 4-Byte-Address Mode, 但是判断当前是否在 4-Byte-Address Mode 的方法又不统一,因此无法通过 SPI NOR 的相关命令判断当前是否在 4-Byte-Address Mode。

当前的处理方法为:

  1. 首先按照 3-Byte-Address Mode 尝试读取启动镜像

  2. 如果失败,则按照 4-Byte-Address Mode 尝试读取启动镜像

本芯片 BROM 不支持 Dataflash 启动。Dataflash 是一种特殊的 SPI NOR Flash, 其每个 Page 的大小为 264 或者 528,并且 Page 之间的地址不连续,常用于保存数据。

注:

BROM 阶段,从 SPI NOR 启动过程中,没有使用 XIP 功能。