SPI NOR 配置
修改 DTS
要在实际项目中使用 SPI NOR 设备,还需要修改 DTS 配置。
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";
};
};
同时还需在 board-u-boot.dtsi 文件中,将该设备标记为
u-boot,dm-pre-reloc ,不然 SPL 无法识别和使用。
&spi0 {
u-boot,dm-pre-reloc;
spi-flash@0 {
u-boot,dm-pre-reloc;
};
};
Bus Width
宽总线的 SPI NOR 芯片可以工作在窄总线下,如 4 线的 SPI NOR 配置为 1 线也可以工作,但读写速度损失, 但窄总线设备无法工作在宽总线模式下,因此 spi-tx-bus-width 要正确设置
-
标准 SPI NOR 配置为 1
-
Dual SPI NOR 配置为 2
-
Quad SPI NOR 配置为 4
