[U-Boot] [PATCH v4 00/36] sf: Add common probe and extended/quad read/write cmds support
Simon Glass
sjg at chromium.org
Fri Sep 27 01:05:08 CEST 2013
Hi Jagan,
On Tue, Sep 24, 2013 at 12:19 PM, Jagannadha Sutradharudu Teki
<jagannadha.sutradharudu-teki at xilinx.com> wrote:
> This patch series is a combination of
> "sf: Add common probe support"
> "sf: Add support for extended/quad read and write commands"
> http://www.mail-archive.com/u-boot@lists.denx.de/msg121668.html
> http://u-boot.10912.n7.nabble.com/PATCH-v2-00-10-sf-Add-support-for-extended-quad-read-and-write-commands-td160964.html
>
> This patch series adds common probe support for all flash vendors except ramtron.
>
> spi_flash_probe is a new addition where all flash driver
> probing is combined into a common file, this means spi_flash_probe.c
> adds a new probing style common to all flashes.
>
>
> Apart from common probing, this series also adds support for
> extended read commands and quad read/write commands.
>
> http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/150148
> http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/167026
>
> There is a bit discussion going on for supporting this:
> http://u-boot.10912.n7.nabble.com/PATCH-00-12-cmd-sf-Add-support-for-read-and-write-instructions-td143749.html
>
> Concept:
> Initially I tried to add individual sf write/read commands to respective
> flash read/write commands, but later some discussion to mainline about this and
> changed the implementation.
>
> As Michal and me were trying to change this as like the
> "implementation will discover the fastest command by taking the supported
> commands from flash and a controller. Controller supported commands will always been a priority."
>
> Means I have added rd_cmd and wr_cmd params on spi_flash_id_params table.
> So the flash user may fill these with flash supported commands, and also spi controller
> use is also have rd_cmd and wr_cmd from spi.h, so the spi user will fill these with
> controller supported commands. and the resultent command is calculated based fastest
> commands by taking inputs from spi and flash, but spi(controller) has always a priority.
>
> Supported commands:
> - CMD_READ_ARRAY_SLOW
> - CMD_READ_ARRAY_FAST
> - CMD_READ_DUAL_OUTPUT_FAST
> - CMD_READ_DUAL_IO_FAST
> - CMD_READ_QUAD_OUTPUT_FAST
> - CMD_PAGE_PROGRAM
> - CMD_QUAD_PAGE_PROGRAM
>
> Testing repo branch:
> -------------------
> $ git clone git://git.denx.de/u-boot-spi.git
> $ cd u-boot-spi
> $ git checkout -b master-next-test origin/master-next-test
>
> REQUEST FOR ALL SPI CODE CONTRIBUTORS/USERS, PLEASE TEST THESE CHANGES
> W.R.T YOUR HW IF POSSIBLE.
>
> Please let me know for any issues/concerns/questions.
>
> --
> Thanks,
> Jagan.
>
> Jagannadha Sutradharudu Teki (36):
> sf: Divide spi_flash into multiple parts
> sf: probe: Add new spi_flash_probe support
> sf: probe: Add support for M25P* flash parts
> sf: probe: Add support for EN25Q* flash parts
> sf: probe: Add support for GD25* flash parts
> sf: probe: Add support for MX25L* flash parts
> sf: probe: Add support for W25* flash parts
> sf: probe: Add support for S25FL* flash parts
> sf: probe: Add support for SST25* flash parts
> sf: probe: Add support for AT45DB* flash parts
> sf: probe: Give proper spacing on flash table params
> sf: probe: Add support for SST_WP
> sf: probe: Add support to clear flash BP# bits
> sf: probe: Add support for erase sector selection flag
> sf: probe: Add support for flag status polling
> sf: probe: Move BAR config to spi_flash_validate_ids
> sf: Add proper comment style on spi_flash structure
> sf: ramtron: Add support for separate flash driver
> sf: Remove unneeded flash drivers files
> sf: probe: Add support for EN25Q64
> sf: probe: Add support for S25FL256S_256K
> sf: probe: Add support for S25FL512S_256K
> sf: probe: Use print_size arg as page_size
> sf: probe: Print erase_size while printing flash details
> sf: probe: Simply the BAR configuration logic
> sf: ops: Add static qualifier to spi_flash_cmd_bankaddr_write
> sf: probe: Add support for MX25L25635F
> sf: probe: Add support for MX25L51235F
> sf: Remove spi_flash_do_alloc references
> doc: SPI: Add status.txt for tracking SPI subsys status
> sf: Add extended read commands support
> sf: Add quad read/write commands support
> sf: ops: Add configuration register writing support
> sf: Set quad enable bit support
> sf: spi_flash cleanups
> spi: spi cleanups
>
> doc/SPI/status.txt | 28 ++
> drivers/mtd/spi/Makefile | 15 +-
> drivers/mtd/spi/atmel.c | 544 ---------------------------------
> drivers/mtd/spi/eon.c | 60 ----
> drivers/mtd/spi/gigadevice.c | 65 ----
> drivers/mtd/spi/macronix.c | 98 ------
> drivers/mtd/spi/ramtron.c | 123 +++++++-
> drivers/mtd/spi/spansion.c | 141 ---------
> drivers/mtd/spi/spi_flash.c | 571 +----------------------------------
> drivers/mtd/spi/spi_flash_internal.h | 151 ++++-----
> drivers/mtd/spi/spi_flash_ops.c | 451 +++++++++++++++++++++++++++
> drivers/mtd/spi/spi_flash_probe.c | 400 ++++++++++++++++++++++++
> drivers/mtd/spi/sst.c | 238 ---------------
> drivers/mtd/spi/stmicro.c | 202 -------------
> drivers/mtd/spi/winbond.c | 141 ---------
> drivers/spi/spi.c | 3 +
> include/configs/top9000.h | 1 -
> include/spi.h | 99 +++---
> include/spi_flash.h | 119 ++++----
> 19 files changed, 1205 insertions(+), 2245 deletions(-)
> create mode 100644 doc/SPI/status.txt
> delete mode 100644 drivers/mtd/spi/atmel.c
> delete mode 100644 drivers/mtd/spi/eon.c
> delete mode 100644 drivers/mtd/spi/gigadevice.c
> delete mode 100644 drivers/mtd/spi/macronix.c
> delete mode 100644 drivers/mtd/spi/spansion.c
> create mode 100644 drivers/mtd/spi/spi_flash_ops.c
> create mode 100644 drivers/mtd/spi/spi_flash_probe.c
> delete mode 100644 drivers/mtd/spi/sst.c
> delete mode 100644 drivers/mtd/spi/stmicro.c
> delete mode 100644 drivers/mtd/spi/winbond.c
>
> --
> 1.8.3
>
>
This series seems to add 700 bytes to code size. It isn't a huge
amount if the benefits are worth it, but is it necessary?
(try-spi=b35a52: b/) u> ./tools/buildman/buildman -b try-spi snow -sS --step 0
Summary of 2 commits for 1 boards (1 thread, 32 jobs per thread)
01: Sound: MAX98095: Support I2S0 channel
37: spi: spi cleanups
arm: (for 1/1 boards) all +702.0 bss +12.0 rodata +314.0 text +376.0
(try-spi=b35a52: b/) u>
(try-spi=b35a52: b/) u> ./tools/buildman/buildman -b try-spi snow -sS
...
19: sf: ramtron: Add support for separate flash driver
arm: (for 1/1 boards) all +423.0 bss +48.0 rodata +447.0 text -72.0
20: sf: Remove unneeded flash drivers files
arm: (for 1/1 boards) all -191.0 bss -16.0 rodata -175.0
21: sf: probe: Add support for EN25Q64
22: sf: probe: Add support for S25FL256S_256K
arm: (for 1/1 boards) bss -8.0 text +8.0
23: sf: probe: Add support for S25FL512S_256K
24: sf: probe: Use print_size arg as page_size
25: sf: probe: Print erase_size while printing flash details
arm: (for 1/1 boards) all +70.0 bss +24.0 rodata +14.0 text +32.0
26: sf: probe: Simply the BAR configuration logic
27: sf: ops: Add static qualifier to spi_flash_cmd_bankaddr_write
28: sf: probe: Add support for MX25L25635F
29: sf: probe: Add support for MX25L51235F
30: sf: Remove spi_flash_do_alloc references
31: doc: SPI: Add status.txt for tracking SPI subsys status
32: sf: Add extended read commands support
arm: (for 1/1 boards) all +136.0 bss +8.0 rodata +16.0 text +112.0
33: sf: Add quad read/write commands support
arm: (for 1/1 boards) all +72.0 bss -36.0 rodata +12.0 text +96.0
34: sf: ops: Add configuration register writing support
arm: + snow
35: sf: Set quad enable bit support
arm: snow
arm: (for 1/1 boards) all +192.0 bss -8.0 text +200.0
36: sf: spi_flash cleanups
37: spi: spi cleanups
Regards,
Simon
More information about the U-Boot
mailing list