linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: angus.clark@st.com (Angus Clark)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 08/36] mtd: devices: Provide header for shared OPCODEs and SFDP commands
Date: Fri, 13 Dec 2013 15:06:53 +0000	[thread overview]
Message-ID: <52AB228D.5030003@st.com> (raw)
In-Reply-To: <20131210214849.GE27149@ld-irv-0074.broadcom.com>

On 12/10/2013 09:48 PM, Brian Norris wrote:
> On Fri, Nov 29, 2013 at 12:18:57PM +0000, Lee Jones wrote:
>> JEDEC have helped to standardise a great deal of the commands which
>> can be issued to a Serial Flash devices. Many of the OPCODEs and all
>> of the Serial Flash Discoverable Parameters (SFDP) commands are
>> generic across devices. This patch provides a shared point where
>> these commands can be defined.

This comment isn't entirely correct.  The SFDP standard (JESD216A) does not go
as far as standardising the OPCODES, but merely a way of determining at runtime
which operations are supported (e.g. READ_1_1_4, READ_1_4_4), and the associated
opcodes; vendors are still free to use a different opcode for a particular
operation.

>> +/* JEDEC Standard - Serial Flash Discoverable Parmeters (SFDP) Commands */
>> +#define FLASH_CMD_READ		0x03	/* READ */
>> +#define FLASH_CMD_READ_FAST	0x0b	/* FAST READ */
>> +#define FLASH_CMD_READ_1_1_2	0x3b	/* DUAL OUTPUT READ */
>> +#define FLASH_CMD_READ_1_2_2	0xbb	/* DUAL I/O READ */
>> +#define FLASH_CMD_READ_1_1_4	0x6b	/* QUAD OUTPUT READ */
>> +#define FLASH_CMD_READ_1_4_4	0xeb	/* QUAD I/O READ */
> 
> All of these {1,2,4}_{1,2,4}_{1,2,4} suffixes are a little cryptic; I
> ended up referring to the SFDP spec to figure out what the first number
> meant. Can you document them briefly at the top of this SFDP list?

I think the {x,y,z} descriptions offer the simplest way of representing the
myriad of operations supported by various devices -- it was one thing SFDP did
get right.  However, I agree, the nomenclature  does need explained.  We also
need a way of representing 32-bit address commands, and SDR vs DDR commands --
this has not yet been addresses by SFDP.

> Since you list these, does SFDP even describe the 32-bit addressing
> commands? 

Not yet, but I believe "JESD216B" will include a parameter table related to
32-bit address instructions.

> It seems like it assumes the device is switched (statefully)
> between 24-bit and 32-bit address modes (or kept permanently in one or
> the other).

And the complexity increases!  The st_spi_fsm H/W also supports a memory-mapped
mode for booting.  However, the boot controller is hard-coded to issue 24-bit
address cycles.  If the Serial Flash device includes a dedicated REST pin, and
this is appropriately routed to the system reset, then we have no issue -- the
device will reset to its power-on state following a warm reset.  If a reset pin
is not available, then certain precautions can be followed to minimise problems
with warm resets.   If the Serial Flash device supports a 32-bit instruction
set, then this should be used in preference, and we can avoid any statefull
transitions.  Failing that, we can minimise the window in which a reset would
fail by issuing EN4B/EX4B before/after each operation.  Of course, if we know
the system is not subject to these constraints, then we just need to issue EN4B
at the start, and stay in 4B mode.

All this knowledge needs to be in the spi-nor layer...

  parent reply	other threads:[~2013-12-13 15:06 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-29 12:18 [PATCH v3 00/36] mtd: st_spi_fsm: Add new driver Lee Jones
2013-11-29 12:18 ` [PATCH v3 01/36] mtd: st_spi_fsm: Allocate resources and register with MTD framework Lee Jones
2013-12-02 13:52   ` srinivas kandagatla
2013-12-10 18:47   ` Brian Norris
2013-12-10 20:46   ` Brian Norris
2013-12-11  8:48     ` Lee Jones
2013-12-11  9:37       ` Angus Clark
2013-12-11 18:01         ` Brian Norris
2013-11-29 12:18 ` [PATCH v3 02/36] mtd: st_spi_fsm: Supply all register address and bit logic defines Lee Jones
2013-11-29 12:18 ` [PATCH v3 03/36] mtd: st_spi_fsm: Initialise and configure the FSM for normal working conditions Lee Jones
2013-12-10 19:01   ` Brian Norris
2013-12-10 20:08     ` Brian Norris
2013-11-29 12:18 ` [PATCH v3 04/36] mtd: st_spi_fsm: Supply framework for device requests Lee Jones
2013-12-10 20:19   ` Brian Norris
2013-12-13 14:35     ` Angus Clark
2013-11-29 12:18 ` [PATCH v3 05/36] mtd: st_spi_fsm: Supply a method to read from the FSM's FIFO Lee Jones
2013-11-29 12:18 ` [PATCH v3 06/36] mtd: st_spi_fsm: Supply defines for the possible flash command opcodes Lee Jones
2013-11-29 12:18 ` [PATCH v3 07/36] mtd: st_spi_fsm: Add support for JEDEC ID extraction Lee Jones
2013-11-29 12:18 ` [PATCH v3 08/36] mtd: devices: Provide header for shared OPCODEs and SFDP commands Lee Jones
2013-12-10 21:48   ` Brian Norris
2013-12-10 22:23     ` Brian Norris
2013-12-13 15:46       ` Angus Clark
2013-12-13 15:06     ` Angus Clark [this message]
2013-11-29 12:18 ` [PATCH v3 09/36] mtd: st_spi_fsm: Provide device look-up table Lee Jones
2013-12-10 22:03   ` Brian Norris
2013-12-17  9:17     ` Angus Clark
2014-01-07 16:11       ` Lee Jones
2013-11-29 12:18 ` [PATCH v3 10/36] mtd: st_spi_fsm: Dynamically setup flash device based on JEDEC ID Lee Jones
2013-11-29 12:19 ` [PATCH v3 11/36] mtd: st_spi_fsm: Search for preferred FSM message sequence configurations Lee Jones
2013-12-11  1:06   ` Brian Norris
2013-12-17  9:57     ` Angus Clark
2013-12-17 10:46       ` Lee Jones
2013-12-17 10:56         ` Angus Clark
2013-11-29 12:19 ` [PATCH v3 12/36] mtd: st_spi_fsm: Fetch platform specific configurations Lee Jones
2013-11-29 12:19 ` [PATCH v3 13/36] mtd: st_spi_fsm: Prepare the read/write FSM message sequence(s) Lee Jones
2013-11-29 12:19 ` [PATCH v3 14/36] mtd: st_spi_fsm: Add device-tree binding documentation Lee Jones
2013-11-29 19:07   ` Linus Walleij
2013-12-02 11:03     ` Lee Jones
2013-12-03 10:23       ` Linus Walleij
2013-12-03 11:31         ` Lee Jones
2013-12-03 12:22           ` Linus Walleij
2013-12-03 12:31             ` Lee Jones
2013-11-29 12:19 ` [PATCH v3 15/36] mtd: st_spi_fsm: Fetch boot-device from mode pins Lee Jones
2013-12-11  1:27   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 16/36] mtd: st_spi_fsm: Provide the erase one sector sequence Lee Jones
2013-11-29 12:19 ` [PATCH v3 17/36] mtd: st_spi_fsm: Provide the sequence for enabling 32bit addressing mode Lee Jones
2013-11-29 12:19 ` [PATCH v3 18/36] mtd: st_spi_fsm: Prepare read/write sequences according to configuration Lee Jones
2013-11-29 12:19 ` [PATCH v3 19/36] mtd: st_spi_fsm: Add a check to if the chip can handle an SoC reset Lee Jones
2013-11-29 12:19 ` [PATCH v3 20/36] mtd: st_spi_fsm: Provide a method to put the chip into 32bit addressing mode Lee Jones
2013-12-11  1:49   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 21/36] mtd: st_spi_fsm: Update the flash Volatile Configuration Register Lee Jones
2013-11-29 12:19 ` [PATCH v3 22/36] mtd: st_spi_fsm: Provide the default read/write configurations Lee Jones
2013-12-11  1:37   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 23/36] mtd: st_spi_fsm: Supply the N25Qxxx specific read configurations Lee Jones
2013-11-29 12:19 ` [PATCH v3 24/36] mtd: st_spi_fsm: Supply the N25Qxxx chip specific configuration call-back Lee Jones
2013-12-11  2:33   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 25/36] mtd: st_spi_fsm: Prepare default sequences for read/write/erase Lee Jones
2013-11-29 12:19 ` [PATCH v3 26/36] mtd: st_spi_fsm: Add the ability to read from a Serial Flash device Lee Jones
2013-12-11  2:09   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 27/36] mtd: st_spi_fsm: Write to Flash via the FSM FIFO Lee Jones
2013-11-29 12:19 ` [PATCH v3 28/36] mtd: st_spi_fsm: Supply a busy wait for post-write status Lee Jones
2013-12-11  2:13   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 29/36] mtd: st_spi_fsm: Add the ability to write to a Serial Flash device Lee Jones
2013-11-29 12:19 ` [PATCH v3 30/36] mtd: st_spi_fsm: Erase partly or as a whole " Lee Jones
2013-12-11  2:19   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 31/36] mtd: st_spi_fsm: Add the ability to read the FSM's status Lee Jones
2013-11-29 12:19 ` [PATCH v3 32/36] mtd: st_spi_fsm: Add the ability to write to FSM's status register Lee Jones
2013-11-29 12:19 ` [PATCH v3 33/36] mtd: st_spi_fsm: Supply the MX25xxx chip specific configuration call-back Lee Jones
2013-12-11  2:25   ` Brian Norris
2013-11-29 12:19 ` [PATCH v3 34/36] mtd: st_spi_fsm: Supply the S25FLxxx " Lee Jones
2013-11-29 12:19 ` [PATCH v3 35/36] mtd: st_spi_fsm: Supply the W25Qxxx " Lee Jones
2013-11-29 12:19 ` [PATCH v3 36/36] ARM: STi: Add support for the FSM Serial Flash Controller Lee Jones
2013-12-02 13:05   ` srinivas kandagatla
2013-12-02 13:20     ` Lee Jones
2013-12-02 13:26       ` srinivas kandagatla
2013-12-02 13:43         ` Lee Jones
2013-12-02 13:56           ` srinivas kandagatla

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=52AB228D.5030003@st.com \
    --to=angus.clark@st.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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;
as well as URLs for NNTP newsgroup(s).