From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/6] sf: Optimize flash features code
Date: Tue, 21 Jan 2014 00:01:28 +0100 [thread overview]
Message-ID: <201401210001.28923.marex@denx.de> (raw)
In-Reply-To: <CAD6G_RSq532xshz0rFbjTYANZ3sxAn2LCB1XSiGn_+=Rzcqcrg@mail.gmail.com>
On Monday, January 20, 2014 at 02:32:27 PM, Jagan Teki wrote:
> On Mon, Jan 20, 2014 at 6:49 PM, Marek Vasut <marex@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@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@xilinx.com>
> >> >> Cc: Marek Vasut <marex@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.
I mean there do exist SPI controllers which can output data via more than one
(MOSI) line . They do support 1, 2 or even 4 lines. This comes useful when
driving SPI flashes indeed, _BUT_ (!) this is not tied to driving SPI flashes.
On the contrary, you can connect any device which can be driven over such
"parallelised" SPI and it will work. And only such property shall also land in
the struct spi_slave {} .
Properties like "let's assume the SPI slave is a SPI NOR and it supports SPI NOR
command FOO" do not go into struct spi_slave.
> 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.
Linux is now going for a separate SPI-NOR controller framework and this is what
we will do as well. The SF layer will be only a unifying layer providing access
to either SPI-NOR API (for the SPI-NOR controllers) or a translation layer to
communicate SPI-NOR commands over generic SPI API (for the old-school regular
way of doing SPI NOR connection to SPI bus).
> 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.
I doubt anything is going in today's release ;-)
Actually, you need to really start discerning which _must_ go into a release and
which simply does not go into a release and waits for -next. This is important
role of a maintainer and plays important role in keeping the codebase in good
shape.
Code which is untested, code which changes core stuff and isn't an obvious
bugfix etc. simply can wait. Code which is obvious bugfix goes in even in the -
rc period. Of course, there are all kinds of exceptions, that depends on the
rationale and negotiation.
next prev parent reply other threads:[~2014-01-20 23:01 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1390075593-11226-1-git-send-email-jaganna@xilinx.com>
2014-01-18 20:06 ` [U-Boot] [PATCH 1/6] sf: ops: Squash the malloc+memset combo Jagannadha Sutradharudu Teki
2014-01-18 20:34 ` Marek Vasut
2014-01-18 20:06 ` [U-Boot] [PATCH 2/6] sf: Optimize flash features code Jagannadha Sutradharudu Teki
2014-01-18 20:39 ` Marek Vasut
2014-01-18 20:51 ` Jagan Teki
2014-01-20 13:19 ` Marek Vasut
2014-01-20 13:32 ` Jagan Teki
2014-01-20 23:01 ` Marek Vasut [this message]
2014-01-21 7:39 ` Jagan Teki
2014-01-21 7:45 ` Jagan Teki
2014-01-21 17:48 ` Marek Vasut
2014-01-18 20:06 ` [U-Boot] [PATCH 3/6] sf: Renames on dual_flash stuff Jagannadha Sutradharudu Teki
2014-01-18 20:37 ` Marek Vasut
2014-01-18 20:49 ` Jagan Teki
2014-01-20 13:16 ` Marek Vasut
2014-01-20 13:35 ` Jagan Teki
2014-01-18 20:06 ` [U-Boot] [PATCH 4/6] sf: Update read/write command macros Jagannadha Sutradharudu Teki
2014-01-18 20:36 ` Marek Vasut
2014-01-18 20:45 ` Jagan Teki
2014-01-20 11:13 ` Detlev Zundel
2014-01-20 11:46 ` Jagan Teki
2014-01-20 13:06 ` Marek Vasut
2014-01-20 13:10 ` Jagan Teki
2014-01-20 13:13 ` Jagan Teki
2014-01-20 14:33 ` Detlev Zundel
2014-01-18 20:06 ` [U-Boot] [PATCH 5/6] sf: Minor macro cleanups Jagannadha Sutradharudu Teki
2014-01-18 20:06 ` [U-Boot] [PATCH 6/6] sf: Update bank configuration Jagannadha Sutradharudu Teki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201401210001.28923.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox