ZYNQ 中设置支持 QSPI Dual Stacked Flash
硬件:zynq7020,板子上有两片 s25fl512s flash,每片 64MB, 采用 dual stacked 方式连接。
软件: petalinux2018.03
project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 改动如下:
&qspi {
is-dual = <0>;
is-stacked = <1>;
num-cs = <2>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
status = "okay";
flash0: flash@0 {
compatible = "s25fl512s";
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <50000000>;
};
};
这里,
is-dual:如果是 dual parallel 方式,为 1,其他为 0
is-stacked: uboot 里面会检测,kernel 里不看这个标志。
num-cs: 设置 cs 的数目
后面默认位宽是 4bit
Kernel menuconfig 改动,相当于设置了 is-stacked 标志
Device Drivers
--->
[*] SPI support
--->
<*>
<*>
[*]
Xilinx SPI controller common module
Xilinx Zynq QSPI controller
Xilinx Zynq QSPI Dual stacked configuration
效果如下
Hit any key to stop autoboot: 0
#sf probe
spi_flash_scan, dual_flash:1
SF: Detected s25fl512s_256k with page size 512 Bytes, erase size 256 KiB, total 128 MiB
其他可以参考官网说明
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842262/Zynq+QSPI+Driver