From: "Cédric Le Goater" <clg@kaod.org>
To: marcin.krzeminski@nokia.com, qemu-devel@nongnu.org
Cc: crosthwaitepeter@gmail.com, pawel.lenkow@itlen.com,
peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes.
Date: Thu, 16 Jun 2016 09:19:53 +0200 [thread overview]
Message-ID: <57625319.1000107@kaod.org> (raw)
In-Reply-To: <1465998071-7355-9-git-send-email-marcin.krzeminski@nokia.com>
On 06/15/2016 03:41 PM, marcin.krzeminski@nokia.com wrote:
> From: Marcin Krzeminski <marcin.krzeminski@nokia.com>
>
> Add support for Spansion and Macronix flashes.
> Additionally Numonyx(Micron) move from default
> in fast read commands family.
maybe we could start adding sub routines to decode some of the
larger commands, to ease reading. DIOR and QIOR are good candidates.
C.
> Signed-off-by: Marcin Krzeminski <marcin.krzeminski@nokia.com>
> ---
> hw/block/m25p80.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 64 insertions(+), 8 deletions(-)
>
> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
> index 21998db..7bc0e03 100644
> --- a/hw/block/m25p80.c
> +++ b/hw/block/m25p80.c
> @@ -758,9 +758,23 @@ static void decode_new_cmd(Flash *s, uint32_t value)
> case QOR4:
> s->needed_bytes = get_addr_length(s);
> switch (get_man(s)) {
> + /* Dummy cycles - modeled with bytes writes instead of bits */
> case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> break;
> + case MAN_MACRONIX:
> + if (extract32(s->volatile_cfg, 6, 2) == 1) {
> + s->needed_bytes += 6;
> + } else {
> + s->needed_bytes += 8;
> + }
> + break;
> + case MAN_SPANSION:
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> + break;
> default:
> break;
> }
> @@ -771,15 +785,36 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>
> case DIOR:
> case DIOR4:
> + s->needed_bytes = get_addr_length(s);
> + /* Dummy cycles modeled with bytes writes instead of bits */
> switch (get_man(s)) {
> case MAN_WINBOND:
> + s->needed_bytes += 4;
> + break;
> case MAN_SPANSION:
> - s->needed_bytes = 4;
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> break;
> - default:
> - s->needed_bytes = get_addr_length(s);
> - /* Dummy cycles modeled with bytes writes instead of bits */
> + case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> + break;
> + case MAN_MACRONIX:
> + switch (extract32(s->volatile_cfg, 6, 2)) {
> + case 1:
> + s->needed_bytes += 6;
> + break;
> + case 2:
> + s->needed_bytes += 8;
> + break;
> + default:
> + s->needed_bytes += 4;
> + break;
> + }
> + break;
> + default:
> + break;
> }
> s->pos = 0;
> s->len = 0;
> @@ -788,15 +823,36 @@ static void decode_new_cmd(Flash *s, uint32_t value)
>
> case QIOR:
> case QIOR4:
> + s->needed_bytes = get_addr_length(s);
> + /* Dummy cycles modeled with bytes writes instead of bits */
> switch (get_man(s)) {
> case MAN_WINBOND:
> + s->needed_bytes += 4;
> + break;
> case MAN_SPANSION:
> - s->needed_bytes = 6;
> + s->needed_bytes += extract32(s->spansion_cr2v,
> + SPANSION_DUMMY_CLK_POS,
> + SPANSION_DUMMY_CLK_LEN
> + );
> break;
> - default:
> - s->needed_bytes = get_addr_length(s);
> - /* Dummy cycles modeled with bytes writes instead of bits */
> + case MAN_NUMONYX:
> s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
> + break;
> + case MAN_MACRONIX:
> + switch (extract32(s->volatile_cfg, 6, 2)) {
> + case 1:
> + s->needed_bytes += 4;
> + break;
> + case 2:
> + s->needed_bytes += 8;
> + break;
> + default:
> + s->needed_bytes += 6;
> + break;
> + }
> + break;
> + default:
> + break;
> }
> s->pos = 0;
> s->len = 0;
>
next prev parent reply other threads:[~2016-06-16 7:20 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-15 13:41 [Qemu-devel] [PATCH 0/9] m25p80: Add new 512Mbit and 1Gbit devices marcin.krzeminski
2016-06-15 13:41 ` [Qemu-devel] [PATCH 1/9] m25p80: Replace JEDEC ID masking with function marcin.krzeminski
2016-06-15 14:05 ` Cédric Le Goater
2016-06-15 17:09 ` [Qemu-devel] Odp.: " Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-15 13:41 ` [Qemu-devel] [PATCH 2/9] m25p80: Make a table for JEDEC ID marcin.krzeminski
2016-06-15 14:17 ` Cédric Le Goater
2016-06-15 13:41 ` [Qemu-devel] [PATCH 3/9] m25p80: Allow more than four banks marcin.krzeminski
2016-06-16 7:09 ` Cédric Le Goater
2016-06-15 13:41 ` [Qemu-devel] [PATCH 4/9] m25p80: Introduce COLLECTING_VAR_LEN_DATA state marcin.krzeminski
2016-06-16 7:13 ` Cédric Le Goater
2016-06-16 7:43 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-16 8:13 ` Cédric Le Goater
2016-06-15 13:41 ` [Qemu-devel] [PATCH 5/9] m25p80: Add additional flash commands: marcin.krzeminski
2016-06-16 7:14 ` Cédric Le Goater
2016-06-15 13:41 ` [Qemu-devel] [PATCH 6/9] m25p80: Introduce quad and equad modes marcin.krzeminski
2016-06-15 14:25 ` Cédric Le Goater
2016-06-15 17:40 ` [Qemu-devel] Odp.: " Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-17 12:43 ` Cédric Le Goater
2016-06-15 13:41 ` [Qemu-devel] [PATCH 7/9] m25p80: Introduce configuration registers marcin.krzeminski
2016-06-16 7:24 ` Cédric Le Goater
2016-06-16 7:52 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-16 8:05 ` Cédric Le Goater
2016-06-17 10:31 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-15 13:41 ` [Qemu-devel] [PATCH 8/9] m25p80: Fast read commands family changes marcin.krzeminski
2016-06-16 7:19 ` Cédric Le Goater [this message]
2016-06-16 7:53 ` Krzeminski, Marcin (Nokia - PL/Wroclaw)
2016-06-15 13:41 ` [Qemu-devel] [PATCH 9/9] m25p80: New flash devices marcin.krzeminski
2016-06-16 7:20 ` Cédric Le Goater
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=57625319.1000107@kaod.org \
--to=clg@kaod.org \
--cc=crosthwaitepeter@gmail.com \
--cc=marcin.krzeminski@nokia.com \
--cc=pawel.lenkow@itlen.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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 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.