Skip to content

sf: improve support of (Q)SPI flash memories

Cyrille Pitchen u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8spi: add support of SPI flash commandsdrivers/spi/spi-uclass.c drivers/spi/spi.c include/spi.h+221 -01 reply
2/8sf: describe all SPI flash commands with 'struct spi_flash_command'drivers/mtd/spi/sf.c drivers/mtd/spi/sf_dataflash.c drivers/mtd/spi/sf_internal.h +1 more+236 -1691 reply
3/8sf: select the relevant SPI flash protocol for read and write commandsdrivers/mtd/spi/spi_flash.c include/spi_flash.h+20 -81 reply
4/8sf: differentiate Page Program 1-1-4 and 1-4-4drivers/mtd/spi/sf_internal.h drivers/mtd/spi/spi_flash.c+3 -21 reply
5/8sf: add 'addr_len' member to 'struct spi_flash'drivers/mtd/spi/spi_flash.c include/spi_flash.h+10 -51 reply
6/8sf: add new option to support SPI flash above 16MiBdrivers/mtd/spi/Kconfig drivers/mtd/spi/sf_internal.h drivers/mtd/spi/spi_flash.c+118 -71 reply
7/8sf: add support to Microchip SST26 QSPI memoriesdrivers/mtd/spi/sf_internal.h drivers/mtd/spi/spi_flash.c drivers/mtd/spi/spi_flash_ids.c+38 -31 reply
8/8sf: add driver for Atmel QSPI controllerdrivers/spi/Kconfig drivers/spi/Makefile drivers/spi/atmel_qspi.c +1 more+581 -01 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [U-Boot] [PATCH 0/8] sf: improve support of (Q)SPI flash memories

Hi all,

this series of patches has been tested on u-boot-2017.03-at91 then ported to the 'master' branch of the u-boot-spi.git tree.

Tests were passed with a sama5d2 xplained board which embeds both SPI and QSPI controllers.

The following tests have been passed:

- QSPI0 + Macronix MX25L25673G:
+ probe: OK
+ Fast Read 1-1-4 at offset 0x10000 (u-boot env): OK
+ Page Program 1-1-4 at offset 0x10000: OK
The Macronix datasheet tells that only Page Program 1-4-4 is supported, not Page Program 1-1-4, however it worked, I don't know why...

- QSPI0 + Microchip SST26
+ probe: OK
+ Fast Read 1-1-4 at offset 0x10000 (u-boot env): OK
+ Page Program 1-1-1 at offset 0x10000: OK
SST26 memories support Page Program 1-4-4 but with the op code of Page Program 1-1-4, which is not standard so I don't use it.

- QSPI0 + Adesto AT25DF321A
+ probe: OK
+ Fast Read 1-1-1 at offset 0x10000 (u-boot env): OK
+ Page Program 1-1-1 at offset 0x10000: OK

- SPI0 + Adesto AT25DF321A
+ probe: OK
+ Fast Read 1-1-1 at offset 0x6000 (u-boot env): OK
+ Page Program 1-1-1 at offest 0x6000: OK

- SPI1 + Atmel AT45
+ probe: OK
+ Read at offset 0: OK
+ Write at offset 0: OK <- I didn't try offset other than 0.

During my tests, I used:
- setenv/saveenv, reboot, printenv
or
- sf probe, sf read, sf write

Best regards,

Cyrille

Cyrille Pitchen (8):
spi: add support of SPI flash commands
sf: describe all SPI flash commands with 'struct spi_flash_command'
sf: select the relevant SPI flash protocol for read and write commands
sf: differentiate Page Program 1-1-4 and 1-4-4
sf: add 'addr_len' member to 'struct spi_flash'
sf: add new option to support SPI flash above 16MiB
sf: add support to Microchip SST26 QSPI memories
sf: add driver for Atmel QSPI controller

 drivers/mtd/spi/Kconfig         |  15 +-
 drivers/mtd/spi/sf.c            |  78 ++++++--
 drivers/mtd/spi/sf_dataflash.c  | 119 ++++++------
 drivers/mtd/spi/sf_internal.h   |  48 +++--
 drivers/mtd/spi/spi_flash.c     | 338 +++++++++++++++++++++++----------
 drivers/mtd/spi/spi_flash_ids.c |   5 +
 drivers/spi/Kconfig             |   7 +
 drivers/spi/Makefile            |   1 +
 drivers/spi/atmel_qspi.c        | 404 ++++++++++++++++++++++++++++++++++++++++
 drivers/spi/atmel_qspi.h        | 169 +++++++++++++++++
 drivers/spi/spi-uclass.c        |  40 ++++
 drivers/spi/spi.c               |  13 ++
 include/spi.h                   | 168 +++++++++++++++++
 include/spi_flash.h             |   6 +
 14 files changed, 1222 insertions(+), 189 deletions(-)
 create mode 100644 drivers/spi/atmel_qspi.c
 create mode 100644 drivers/spi/atmel_qspi.h
Signature · 1 line
2.7.4