Table of Contents
Introduction
...
2023.1 Versal: OSPI flash probe fails with BSP images on VCK190 in Linux AR Link
Supported Flash parts
- Micron
- ISSI
- Gigadevice
- Macronix (works only up to 150MHz)
Testing
- Flashcp
- mtd utilities.
- mtd_speedtest
- mtd_stresstest
- File System testing - UBIFS and JFFS2
Kernel Configuration
| Code Block |
|---|
CONFIG_SPI_CADENCE_QUADSPI=y |
Device-tree
Sample Device-tree node for OSPI
| Code Block |
|---|
spi@f1010000 {
compatible = "xlnx,versal-ospi-1.0", "cadence,qspi", "cdns,qspi-nor";
status = "okay";
reg = <0x0 0xf1010000 0x0 0x10000 0x0 0xc0000000 0x0 0x20000000>;
interrupts = <0x0 0x7c 0x4 0x0 0x7c 0x4>;
clock-names = "ref_clk", "pclk";
cdns,fifo-depth = <0x100>;
cdns,fifo-width = <0x4>;
cdns,is-dma = <0x1>;
cdns,is-stig-pgm = <0x1>;
cdns,trigger-address = <0xc0000000>;
#stream-id-cells = <0x1>;
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x3 0x3a 0x3 0x52>;
power-domains = <0x7 0x1822402a>;
bus-num = <0x2>;
num-cs = <0x1>;
reset-gpios = <0x28 0xc 0x0>;
phandle = <0x33>;
flash@0 {
compatible = "mt35xu02g", "micron,m25p80", "spi-flash";
reg = <0x0>;
#address-cells = <0x1>;
#size-cells = <0x1>;
cdns,read-delay = <0x0>;
cdns,tshsl-ns = <0x0>;
cdns,tsd2d-ns = <0x0>;
cdns,tchsh-ns = <0x1>;
cdns,tslch-ns = <0x1>;
spi-tx-bus-width = <0x1>;
spi-rx-bus-width = <0x8>;
spi-max-frequency = <0x1312d00>;
partition@0 {
label = "spi0-flash0";
reg = <0x0 0x10000000>;
};
};
}; |
Performance Details
At frequency 133.33 MHz
DDR mode:
Read Speed: 226768 KiB/s
Write Speed: 1696 KiB/s
Mainline Status
Features added to mainline
- SDR NON-PHY mode
- DMA support
- Flash Device Reset
Not in Mainline
- DDR mode support
- Rx tuning
- Stacked mode support
- Support for ISSI, Gigadevice and Macronix.
Change Log
2024.2
- 5c46c46 - Add quirk to skip STIG mode for data xfers
2024.1
- 1c82238 - Store GPIO info for resetting device during resume
- 42f7d1c - Add support for MX66UM2G45G Macronix flash part
- 4cce023 - Fix RX tuning failure for OSPI flashes connected in stacked mode
- 1c6af10 - Disable 16bit SR operation for gd25lx256e flash
- 016ecd9 - Fix call trace during suspend/resume
- 0182633 - Remove dependency on SRAM Fill Register during indirect non-dma read
2023.2
- None
2023.1
- ae655c5 - Replace all spi->chip_select and spi->cs_gpiod references with function call
- 8880c61 - Ads stacked memories support as per the new DT bindings
- adc1e5f - Fix race condition while scheduling periodic tuning
...
2021.2
2021.1
- b832b6b - Added support for OSPI Macronix(mx25um51345g) part .
- 7216a02 - Added support for reading from unaligned address.
- 5ca8ce8 - Rx periodic tuning updates for Master DLL mode.
...