Edit online

SPI NOR 配置

27 Nov 2024
Read time: 1 minute(s)

修改 DTS

要在实际项目中使用 SPI NOR 设备,还需要修改 DTS 配置,详细流程如下所示:
  1. board.dts 中具体的 SPI 控制器下添加 jedec,spi-nor 设备。
    &spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins_a>;
        status = "okay";
        spi-max-frequency = <100000000>;
        spi-flash@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "jedec,spi-nor";    //固定值,所有基于 dts 的 SPI NOR 均声明此
            spi-max-frequency = <100000000>; //最大频率,固定值
            spi-tx-bus-width = <4>;
            spi-rx-bus-width = <4>;
            reg = <0>;                       //固定值,一般不需修改
            status = "okay";
        };
    };
    
  2. board-u-boot.dtsi 文件中,将 jedec,spi-nor 设备标记为 u-boot,dm-pre-reloc,确保 SPL 无法识别和使用。
    &spi0 {
        u-boot,dm-pre-reloc;
        spi-flash@0 {
            u-boot,dm-pre-reloc;
        };
    };
    

配置 Bus Width

根据 SPI NOR 芯片的总线宽度,正确设置 spi-tx-bus-width
  • 标准 SPI NOR 配置为 1

  • Dual SPI NOR 配置为 2

  • Quad SPI NOR 配置为 4

注: 窄总线设备无法在宽总线模式下工作。