All of lore.kernel.org
 help / color / mirror / Atom feed
From: Angus Clark <angus.clark@st.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: marex@denx.de, broonie@linaro.org,
	David Woodhouse <dwmw2@infradead.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	linux-spi@vger.kernel.org, Huang Shijie <b32955@freescale.com>,
	linux-mtd@lists.infradead.org, pekon@ti.com,
	sourav.poddar@ti.com, Lee Jones <lee.jones@linaro.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/4] mtd: spi-nor: add a new framework for SPI NOR
Date: Thu, 5 Dec 2013 14:35:47 +0000	[thread overview]
Message-ID: <52A08F43.6060307@st.com> (raw)
In-Reply-To: <20131204184405.GE9468@ld-irv-0074.broadcom.com>

Hi Brian,

On 12/04/2013 06:44 PM, Brian Norris wrote:
> On this topic, I have one more stick to throw on this fire; I have some
> Broadcom hardware that consists of two pieces:
> 
>   (1) a true SPI controller, with single-line-I/O and
>   (2) a Serial Flash controller that can accelerate flash read, using
>       dual/quad I/O.

We support one platform with properties similar to the hardware you describe,
and such a hybrid configuration was in mind when I was thinking about the
spi-nor framework.  I am not sure how well this will come across over email, but
I envisage something like this:

                             spi-nor
                                |
                                v
                          [spi-nor-xfer]
                                |
         ------------------------------------------------
        |                       |                        |
        v                       v                        v
   spi-wrapper (<------)  hybrid-driver          serial-flash-driver
        |                       |                        |
      [SPI]                     |                        |
        |                       |                        |
        v                       |                        |
generic-spi-driver              |                        |
        |                       |                        |
        v                       v                        v
[generic-SPI-Cntrl]   [SPI-Flash-Read Cntrl]   [SPI-Flash-Controller]

The 'spi-nor' layer is responsible for Serial Flash domain knowledge, and how to
generate 'spi-nor-xfer' messages.  The 'spi-wrapper' would provide an interface
to the generic SPI framework, flattening the 'spi-nor-xfer' message to standard
SPI calls.  The combination of 'spi-nor' and 'spi-wrapper' should achieve what
we have today for the m25p80 driver.  The 'serial-flash-driver' in the example
provides an implementation for a dedicated Serial Flash Controller, making use
of the spi-nor-xfer semantics where required.  The 'hybrid-driver' could use the
'spi-wrapper' implementation for write and erase hooks, and optimised
implementations for read hooks.

[...]
> I mostly bring this up, though, because it is an example of hardware
> that
> 
>    (a) can operate as a true SPI device (hardware (1) can handle generic
>        SPI transfers), but
>    (b) requires knowledge of the details of SPI flash in order to get
>        optimal usage out of the acceleration from (2).
> 
> In my book, point (a) and (b) hold some bearing over the question of
> "where should this SPI NOR framework live", because it is reasonable
> that a single driver for this hardware should be able to handle either
> true SPI devices or accelerated SPI-NOR flash.
> 

Yes, I agree.  At present, within the m25p80 driver, the knowledge of how to
drive Serial Flash devices is entwined with an implementation that assumes a
pure SPI Controller.  Creating an additional layer of abstraction allows us to
separate the two issues, and write drivers that can make us of generic SPI
controllers, or take advantage of accelerated Serial Flash Controllers, or a
combination of both.

I realise it is going to take a significant effort to get this off the ground
and the framework will require some tuning to make sure it can accommodate the
eccentric range of hardware out there.  Unfortunately I am not in a position to
commit much time myself, although I will help advise where I can.  Ironically,
once the ST Bristol site closes next year, I will have lots of time available,
but no access to equipment!

Cheers,

Angus

WARNING: multiple messages have this Message-ID (diff)
From: Angus Clark <angus.clark-qxv4g6HH51o@public.gmane.org>
To: Brian Norris <computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Huang Shijie <b32955-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	<marex-ynQEQJNshbs@public.gmane.org>,
	<broonie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Linus Walleij
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	<linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	<linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	<pekon-l0cyMroinI0@public.gmane.org>,
	<sourav.poddar-l0cyMroinI0@public.gmane.org>,
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH 0/4] mtd: spi-nor: add a new framework for SPI NOR
Date: Thu, 5 Dec 2013 14:35:47 +0000	[thread overview]
Message-ID: <52A08F43.6060307@st.com> (raw)
In-Reply-To: <20131204184405.GE9468-bU/DPfM3abD4WzifrMjOTkcViWtcw2C0@public.gmane.org>

Hi Brian,

On 12/04/2013 06:44 PM, Brian Norris wrote:
> On this topic, I have one more stick to throw on this fire; I have some
> Broadcom hardware that consists of two pieces:
> 
>   (1) a true SPI controller, with single-line-I/O and
>   (2) a Serial Flash controller that can accelerate flash read, using
>       dual/quad I/O.

We support one platform with properties similar to the hardware you describe,
and such a hybrid configuration was in mind when I was thinking about the
spi-nor framework.  I am not sure how well this will come across over email, but
I envisage something like this:

                             spi-nor
                                |
                                v
                          [spi-nor-xfer]
                                |
         ------------------------------------------------
        |                       |                        |
        v                       v                        v
   spi-wrapper (<------)  hybrid-driver          serial-flash-driver
        |                       |                        |
      [SPI]                     |                        |
        |                       |                        |
        v                       |                        |
generic-spi-driver              |                        |
        |                       |                        |
        v                       v                        v
[generic-SPI-Cntrl]   [SPI-Flash-Read Cntrl]   [SPI-Flash-Controller]

The 'spi-nor' layer is responsible for Serial Flash domain knowledge, and how to
generate 'spi-nor-xfer' messages.  The 'spi-wrapper' would provide an interface
to the generic SPI framework, flattening the 'spi-nor-xfer' message to standard
SPI calls.  The combination of 'spi-nor' and 'spi-wrapper' should achieve what
we have today for the m25p80 driver.  The 'serial-flash-driver' in the example
provides an implementation for a dedicated Serial Flash Controller, making use
of the spi-nor-xfer semantics where required.  The 'hybrid-driver' could use the
'spi-wrapper' implementation for write and erase hooks, and optimised
implementations for read hooks.

[...]
> I mostly bring this up, though, because it is an example of hardware
> that
> 
>    (a) can operate as a true SPI device (hardware (1) can handle generic
>        SPI transfers), but
>    (b) requires knowledge of the details of SPI flash in order to get
>        optimal usage out of the acceleration from (2).
> 
> In my book, point (a) and (b) hold some bearing over the question of
> "where should this SPI NOR framework live", because it is reasonable
> that a single driver for this hardware should be able to handle either
> true SPI devices or accelerated SPI-NOR flash.
> 

Yes, I agree.  At present, within the m25p80 driver, the knowledge of how to
drive Serial Flash devices is entwined with an implementation that assumes a
pure SPI Controller.  Creating an additional layer of abstraction allows us to
separate the two issues, and write drivers that can make us of generic SPI
controllers, or take advantage of accelerated Serial Flash Controllers, or a
combination of both.

I realise it is going to take a significant effort to get this off the ground
and the framework will require some tuning to make sure it can accommodate the
eccentric range of hardware out there.  Unfortunately I am not in a position to
commit much time myself, although I will help advise where I can.  Ironically,
once the ST Bristol site closes next year, I will have lots of time available,
but no access to equipment!

Cheers,

Angus
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: angus.clark@st.com (Angus Clark)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/4] mtd: spi-nor: add a new framework for SPI NOR
Date: Thu, 5 Dec 2013 14:35:47 +0000	[thread overview]
Message-ID: <52A08F43.6060307@st.com> (raw)
In-Reply-To: <20131204184405.GE9468@ld-irv-0074.broadcom.com>

Hi Brian,

On 12/04/2013 06:44 PM, Brian Norris wrote:
> On this topic, I have one more stick to throw on this fire; I have some
> Broadcom hardware that consists of two pieces:
> 
>   (1) a true SPI controller, with single-line-I/O and
>   (2) a Serial Flash controller that can accelerate flash read, using
>       dual/quad I/O.

We support one platform with properties similar to the hardware you describe,
and such a hybrid configuration was in mind when I was thinking about the
spi-nor framework.  I am not sure how well this will come across over email, but
I envisage something like this:

                             spi-nor
                                |
                                v
                          [spi-nor-xfer]
                                |
         ------------------------------------------------
        |                       |                        |
        v                       v                        v
   spi-wrapper (<------)  hybrid-driver          serial-flash-driver
        |                       |                        |
      [SPI]                     |                        |
        |                       |                        |
        v                       |                        |
generic-spi-driver              |                        |
        |                       |                        |
        v                       v                        v
[generic-SPI-Cntrl]   [SPI-Flash-Read Cntrl]   [SPI-Flash-Controller]

The 'spi-nor' layer is responsible for Serial Flash domain knowledge, and how to
generate 'spi-nor-xfer' messages.  The 'spi-wrapper' would provide an interface
to the generic SPI framework, flattening the 'spi-nor-xfer' message to standard
SPI calls.  The combination of 'spi-nor' and 'spi-wrapper' should achieve what
we have today for the m25p80 driver.  The 'serial-flash-driver' in the example
provides an implementation for a dedicated Serial Flash Controller, making use
of the spi-nor-xfer semantics where required.  The 'hybrid-driver' could use the
'spi-wrapper' implementation for write and erase hooks, and optimised
implementations for read hooks.

[...]
> I mostly bring this up, though, because it is an example of hardware
> that
> 
>    (a) can operate as a true SPI device (hardware (1) can handle generic
>        SPI transfers), but
>    (b) requires knowledge of the details of SPI flash in order to get
>        optimal usage out of the acceleration from (2).
> 
> In my book, point (a) and (b) hold some bearing over the question of
> "where should this SPI NOR framework live", because it is reasonable
> that a single driver for this hardware should be able to handle either
> true SPI devices or accelerated SPI-NOR flash.
> 

Yes, I agree.  At present, within the m25p80 driver, the knowledge of how to
drive Serial Flash devices is entwined with an implementation that assumes a
pure SPI Controller.  Creating an additional layer of abstraction allows us to
separate the two issues, and write drivers that can make us of generic SPI
controllers, or take advantage of accelerated Serial Flash Controllers, or a
combination of both.

I realise it is going to take a significant effort to get this off the ground
and the framework will require some tuning to make sure it can accommodate the
eccentric range of hardware out there.  Unfortunately I am not in a position to
commit much time myself, although I will help advise where I can.  Ironically,
once the ST Bristol site closes next year, I will have lots of time available,
but no access to equipment!

Cheers,

Angus

  parent reply	other threads:[~2013-12-05 14:35 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-26  6:32 [PATCH 0/4] mtd: spi-nor: add a new framework for SPI NOR Huang Shijie
2013-11-26  6:32 ` Huang Shijie
2013-11-26  6:32 ` [PATCH 1/4] mtd: spi-nor: move the SPI NOR commands to a new header file Huang Shijie
2013-11-26  6:32   ` Huang Shijie
2013-11-26  7:42   ` Gupta, Pekon
2013-11-26  7:42     ` Gupta, Pekon
2013-11-26  8:53     ` Huang Shijie
2013-11-26  8:53       ` Huang Shijie
2013-11-26 14:48       ` Angus Clark
2013-11-26 14:48         ` Angus Clark
2013-11-26  6:32 ` [PATCH 2/4] mtd: spi-nor: add a new data structrue spi_nor{} Huang Shijie
2013-11-26  6:32   ` Huang Shijie
2013-11-26 11:42   ` Gupta, Pekon
2013-11-26 11:42     ` Gupta, Pekon
2013-11-27  4:35     ` Huang Shijie
2013-11-27  4:35       ` Huang Shijie
2013-11-27  9:32       ` Marek Vasut
2013-11-27  9:32         ` Marek Vasut
2013-11-27 10:24         ` Huang Shijie
2013-11-27 10:24           ` Huang Shijie
2013-11-27 10:27           ` Marek Vasut
2013-11-27 10:27             ` Marek Vasut
2013-11-26  6:32 ` [PATCH 3/4] mtd: spi-nor: add the framework for SPI NOR Huang Shijie
2013-11-26  6:32   ` Huang Shijie
2013-11-26 10:03   ` Gupta, Pekon
2013-11-26 10:03     ` Gupta, Pekon
2013-11-27  9:39   ` Marek Vasut
2013-11-27  9:39     ` Marek Vasut
2013-11-26  6:32 ` [PATCH 4/4] mtd: m25p80: use the new spi-nor APIs Huang Shijie
2013-11-26  6:32   ` Huang Shijie
2013-11-26 12:57 ` [PATCH 0/4] mtd: spi-nor: add a new framework for SPI NOR Angus Clark
2013-11-26 12:57   ` Angus Clark
2013-11-27  4:32 ` Brian Norris
2013-11-27  4:32   ` Brian Norris
2013-11-27  4:32   ` Brian Norris
2013-11-27  4:39   ` Huang Shijie
2013-11-27  4:39     ` Huang Shijie
2013-11-27  4:39     ` Huang Shijie
2013-11-29 14:52   ` Angus Clark
2013-11-29 14:52     ` Angus Clark
2013-11-29 14:52     ` Angus Clark
2013-12-02 10:06     ` Huang Shijie
2013-12-02 10:06       ` Huang Shijie
2013-12-02 10:06       ` Huang Shijie
2013-12-02 11:01       ` Gupta, Pekon
2013-12-02 11:01         ` Gupta, Pekon
2013-12-02 11:01         ` Gupta, Pekon
2013-12-02 11:19       ` Angus Clark
2013-12-02 11:19         ` Angus Clark
2013-12-03  6:20         ` Huang Shijie
2013-12-03  6:20           ` Huang Shijie
2013-12-03  6:20           ` Huang Shijie
2013-12-03  8:23           ` Lee Jones
2013-12-03  8:23             ` Lee Jones
2013-12-03  8:23             ` Lee Jones
2013-12-10  8:25             ` Brian Norris
2013-12-10  8:25               ` Brian Norris
2013-12-10  8:25               ` Brian Norris
2013-12-10 10:00               ` Lee Jones
2013-12-10 10:00                 ` Lee Jones
2013-12-10 10:00                 ` Lee Jones
2013-12-03  0:32     ` Marek Vasut
2013-12-03  0:32       ` Marek Vasut
2013-12-03  0:32       ` Marek Vasut
2013-12-03 10:36       ` Huang Shijie
2013-12-03 10:36         ` Huang Shijie
2013-12-03 10:36         ` Huang Shijie
2013-12-03 14:51     ` David Woodhouse
2013-12-03 14:51       ` David Woodhouse
2013-12-03 14:51       ` David Woodhouse
2013-12-04 18:44       ` Brian Norris
2013-12-04 18:44         ` Brian Norris
2013-12-04 18:44         ` Brian Norris
2013-12-05  7:12         ` Huang Shijie
2013-12-05  7:12           ` Huang Shijie
2013-12-05  7:12           ` Huang Shijie
2013-12-05  8:11           ` Brian Norris
2013-12-05  8:11             ` Brian Norris
2013-12-05  8:11             ` Brian Norris
2013-12-05  7:59             ` Huang Shijie
2013-12-05  7:59               ` Huang Shijie
2013-12-05  7:59               ` Huang Shijie
2013-12-05  9:20               ` Brian Norris
2013-12-05  9:20                 ` Brian Norris
2013-12-05  9:20                 ` Brian Norris
2013-12-06  3:07                 ` Huang Shijie
2013-12-06  3:07                   ` Huang Shijie
2013-12-06  3:07                   ` Huang Shijie
2013-12-05 14:35         ` Angus Clark [this message]
2013-12-05 14:35           ` Angus Clark
2013-12-05 14:35           ` Angus Clark
2013-12-06  8:18           ` Huang Shijie
2013-12-06  8:18             ` Huang Shijie
2013-12-06  8:18             ` Huang Shijie
2013-12-10  9:08           ` Brian Norris
2013-12-10  9:08             ` Brian Norris
2013-12-10  9:08             ` Brian Norris
2013-12-04  2:46     ` Huang Shijie
2013-12-04  2:46       ` Huang Shijie
2013-12-04  2:46       ` Huang Shijie
2013-12-04  6:58       ` Angus Clark
2013-12-04  6:58         ` Angus Clark
2013-12-04  6:58         ` Angus Clark
2013-12-04  7:19         ` Gupta, Pekon
2013-12-04  7:19           ` Gupta, Pekon
2013-12-04  7:19           ` Gupta, Pekon
2013-12-04  8:21           ` Angus Clark
2013-12-04  8:21             ` Angus Clark
2013-12-04  8:21             ` Angus Clark
2013-12-04 15:36             ` Marek Vasut
2013-12-04 15:36               ` Marek Vasut
2013-12-04 15:36               ` Marek Vasut
2013-12-05  2:42               ` Huang Shijie
2013-12-05  2:42                 ` Huang Shijie
2013-12-05  2:42                 ` Huang Shijie
2013-12-05  5:43                 ` Gupta, Pekon
2013-12-05  5:43                   ` Gupta, Pekon
2013-12-05  5:43                   ` Gupta, Pekon
2013-12-05  7:33                   ` Huang Shijie
2013-12-05  7:33                     ` Huang Shijie
2013-12-05  7:33                     ` Huang Shijie
2013-11-27  9:27 ` Marek Vasut
2013-11-27  9:27   ` Marek Vasut
2013-11-27  9:47   ` Sourav Poddar
2013-11-27  9:47     ` Sourav Poddar
2013-11-27 10:06     ` Marek Vasut
2013-11-27 10:06       ` Marek Vasut
2013-11-27 10:56       ` Sourav Poddar
2013-11-27 10:56         ` Sourav Poddar
2013-12-02 23:59         ` Marek Vasut
2013-12-02 23:59           ` Marek Vasut
2013-12-03 10:01           ` Sourav Poddar
2013-12-03 10:01             ` Sourav Poddar
2013-12-03 13:42             ` Marek Vasut
2013-12-03 13:42               ` Marek Vasut
2013-12-03 13:50               ` Sourav Poddar
2013-12-03 13:50                 ` Sourav Poddar
2013-12-03 14:19                 ` Marek Vasut
2013-12-03 14:19                   ` Marek Vasut
2013-12-03 14:31                   ` Sourav Poddar
2013-12-03 14:31                     ` Sourav Poddar
2013-12-03 15:09                     ` Marek Vasut
2013-12-03 15:09                       ` Marek Vasut
2013-12-03 15:16                       ` Sourav Poddar
2013-12-03 15:16                         ` Sourav Poddar
2013-12-03 15:35                         ` Marek Vasut
2013-12-03 15:35                           ` Marek Vasut
2013-12-03 15:23                       ` David Woodhouse
2013-12-03 15:23                         ` David Woodhouse
2013-12-03 18:28                         ` Brian Norris
2013-12-03 18:28                           ` Brian Norris
2013-12-03 23:41                           ` Marek Vasut
2013-12-03 23:41                             ` Marek Vasut
2013-11-27 10:19   ` Huang Shijie
2013-11-27 10:19     ` Huang Shijie
2013-12-03  0:00     ` Marek Vasut
2013-12-03  0:00       ` Marek Vasut

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=52A08F43.6060307@st.com \
    --to=angus.clark@st.com \
    --cc=b32955@freescale.com \
    --cc=broonie@linaro.org \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=pekon@ti.com \
    --cc=sourav.poddar@ti.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.