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