[U-Boot] [PATCH v4 00/36] sf: Add common probe and extended/quad read/write cmds support

Tom Rini trini at ti.com
Fri Sep 27 15:00:38 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/26/2013 07:05 PM, Simon Glass wrote:
> 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

Can we please see about doing something with the size change when quad
isn't enabled?

- -- 
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSRYF2AAoJENk4IS6UOR1WHRwQAIXKeiNoAztea+v/jwbxq6cy
xibh16nH+4gcIHF3NTu5vDQoNx75wEVUfyAKt1tvM0EY0CIonQVVQL8ywxj6pZWI
RSlwXGnZKKtEMmV1KsVDOptm3KvKw/IVyP4F0k3hlvrZUbXFgjdl97F73ny5jn26
5NM4/sUGB0ncsxbzGd31uGQiLzpg/TSgLKzXUzYZ8XozKVZt3cdTpgkGVM8v6XB/
I1GYxMAjC+qtPLaiBXvkAoI+2XxcgQ5UDGmIgyEZG2Tzma5Pwt8lGalOJcmHJ16X
ijgnY/0vB3/rlQ6GA/TLvRrp0hcJIchZxpwH2z5aclp7J0dQWhHD63ZpLKxt0V9H
RhapHdF52iy4ux9VBcyXvNN4An1MXBzkwB/8ZETnaDrWsi22EHgFzhCHlDrCtlyn
ZcmcI37KXNBsviUq9xn1GvSId7PqxjcAUEaKAlTXI17zBkh/AZQzZRVg09as7m+O
EfVggXkMw5wqHlF0MpkdkfIPovU7zOn3UkXouC2J/89eJxUqNOjDB7pei0/kfSzh
iHnoM6M7o07nyX5/EUxQs58QAucveqIatjfqizIA28PqplMhgD6W7NSg57svnYoU
ELgw8BSmzMpzcBpFgk1gfK7rROeVILwGoDU1bpAjGWSyBcYidHRy3AuwYHWCFF8n
0JIstTIB8SLONQMtVE1T
=g0eB
-----END PGP SIGNATURE-----


More information about the U-Boot mailing list