[U-Boot] [PATCH 2/6] sf: Optimize flash features code

Jagan Teki jagannadh.teki at gmail.com
Mon Jan 20 14:32:27 CET 2014


On Mon, Jan 20, 2014 at 6:49 PM, Marek Vasut <marex at denx.de> wrote:
> On Saturday, January 18, 2014 at 09:51:56 PM, Jagan Teki wrote:
>> On Sun, Jan 19, 2014 at 2:09 AM, Marek Vasut <marex at denx.de> wrote:
>> > On Saturday, January 18, 2014 at 09:06:29 PM, Jagannadha Sutradharudu
>> > Teki
>> >
>> > wrote:
>> >> - Shrink spi_slave {}
>> >> - Shrink spi_flash_params {}
>> >> - Documentation for sf features
>> >>
>> >> Signed-off-by: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
>> >> Cc: Marek Vasut <marex at denx.de>
>> >> ---
>> >>
>> >>  doc/SPI/README.sf-features    | 122 ++++++++++++++++++++++++++++++
>> >>  drivers/mtd/spi/sf.c          |   4 +-
>> >>  drivers/mtd/spi/sf_internal.h |   1 -
>> >>  drivers/mtd/spi/sf_ops.c      |   8 +-
>> >>  drivers/mtd/spi/sf_params.c   | 172
>> >>
>> >> +++++++++++++++++++++--------------------- drivers/mtd/spi/sf_probe.c
>> >> |
>> >>
>> >>  71 ++++++++---------
>> >>  include/spi.h                 |  42 ++++-------
>> >>  include/spi_flash.h           |  24 +++---
>> >>  8 files changed, 270 insertions(+), 174 deletions(-)
>> >>  create mode 100644 doc/SPI/README.sf-features
>> >>
>> >> diff --git a/doc/SPI/README.sf-features b/doc/SPI/README.sf-features
>> >> new file mode 100644
>> >> index 0000000..d35f56d
>> >> --- /dev/null
>> >> +++ b/doc/SPI/README.sf-features
>> >> @@ -0,0 +1,122 @@
>> >> +SPI FLASH feature enhancements:
>> >> +==============================
>> >> +
>> >> +This document describes how to extend the current data structures in
>> >> spi subsystem +for making use of new flash features/operations w.r.t to
>> >> controller driver support. +
>> >> +1. spi_slave:
>> >> +
>> >> +struct spi_slave {
>> >> +    ..........
>> >> +    u32 mode_bits;
>> >> +    ........
>> >> +};
>> >> +
>> >> + at mode_bits can be used to expose the SPI RX/TX operation modes, bus
>> >> options and +few flags which are used to extended the flash specific
>> >> features/operations +- include/spi.h
>> >> +
>> >> +mode_bits:
>> >> +- SPI_TX_QPP: 4-Wire tx transfer operation quad page program
>> >> +- SPI_RX_SLOW: 1-wire rx transfer operation array slow read
>> >> +- SPI_RX_DUAL: 2-wire rx transfer operation dual fast read
>> >> +- SPI_RX_DUAL_IO: 2-wire rx transfer operation dual io fast read
>> >> +- SPI_RX_QUAD: 4-wire rx transfer operation quad fast read
>> >> +- SPI_RX_QUAD_IO: 4-wire rx transfer operation quad io fast read
>> >> +- SPI_SHARED: dual flash devices are connected in shared bus connection
>> >> +- SPI_SEPARATED: dual flash devices are connected in separate bus
>> >> connection +- SPI_U_PAGE: select the upper flash in dual flash shared
>> >> bus connection [1] +
>> >
>> > A generic SPI controller _does_ _not_ _care_ about any SPI flash crud.
>> > The SPI bus controller (which is what this is for) and SPI-NOR
>> > controller are two different things and must have two different slave
>> > structures.
>>
>> You mean mode_bits need to move in one more structure.
>> Just leave about new SPI-NOR as of now for this release we discuss more
>> soon.
>
> The mode_bits have no place in this structure. The slave can indicate whether it
> can be connected over 1,2,4... lines , but must not indicate that it supports
> some SPI-flash specific properties.

What do you mean by this - can you elaborate.
As of now drivers in drivers/spi need to inform the flash through spi_slave {}
no other alternative ie way remaining flash properties memory_map etc.. handle.
Even Linux follow the same w/o new SPI-NOR framework.

If your question, like need a separate structure for flash specific properties
please wait will wound-up all these in new framework.

I'm planning to push in today release.

-- 
Thanks,
Jagan.


More information about the U-Boot mailing list