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

Jagan Teki jagannadh.teki at gmail.com
Fri Sep 27 15:39:50 CEST 2013


Yes, I will skip quad changes as of now and send the next level patch series.

On Fri, Sep 27, 2013 at 6:30 PM, Tom Rini <trini at ti.com> wrote:
> -----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-----
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot



-- 
Thanks,
Jagan.
--------
Jagannadha Sutradharudu Teki,
E: jagannadh.teki at gmail.com, P: +91-9676773388
Engineer - System Software Hacker
U-boot - SPI Custodian and Zynq APSOC
Ln: http://www.linkedin.com/in/jaganteki


More information about the U-Boot mailing list