From: Bin Meng <bmeng.cn@gmail.com>
To: "Alistair Francis" <alistair.francis@wdc.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Francisco Iglesias" <frasse.iglesias@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
qemu-block@nongnu.org,
Marcin Krzeminski <marcin.krzeminski@nokia.com>,
Bin Meng <bin.meng@windriver.com>,
qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: [PATCH 4/9] hw/block: m25p80: Fix the number of dummy bytes needed for Spansion flashes
Date: Thu, 14 Jan 2021 23:08:57 +0800 [thread overview]
Message-ID: <20210114150902.11515-5-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20210114150902.11515-1-bmeng.cn@gmail.com>
From: Bin Meng <bin.meng@windriver.com>
Per datasheet [1], the number of dummy cycles for Spansion flashes
is configurable via 4 volatible bits in a configuration register.
Do the same dummy cycle to dummy byte conversion fix as others.
[1] https://www.cypress.com/file/316171/download
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
hw/block/m25p80.c | 43 +++++++++++++++++++++++++++++++------------
1 file changed, 31 insertions(+), 12 deletions(-)
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 44508b3da9..e1e5d5a76f 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -955,10 +955,25 @@ static void decode_fast_read_cmd(Flash *s)
s->needed_bytes += 1;
break;
case MAN_SPANSION:
- s->needed_bytes += extract32(s->spansion_cr2v,
- SPANSION_DUMMY_CLK_POS,
- SPANSION_DUMMY_CLK_LEN
- );
+ if (extract32(s->spansion_cr2v, SPANSION_DUMMY_CLK_POS,
+ SPANSION_DUMMY_CLK_LEN) != 8) {
+ qemu_log_mask(LOG_UNIMP,
+ "M25P80: the number of dummy bits is not multiple of 8");
+ }
+ switch (s->cmd_in_progress) {
+ case FAST_READ:
+ case FAST_READ4:
+ s->needed_bytes += 1;
+ break;
+ case DOR:
+ case DOR4:
+ s->needed_bytes += 2;
+ break;
+ case QOR:
+ case QOR4:
+ s->needed_bytes += 4;
+ break;
+ }
break;
default:
break;
@@ -978,10 +993,12 @@ static void decode_dio_read_cmd(Flash *s)
break;
case MAN_SPANSION:
s->needed_bytes += SPANSION_CONTINUOUS_READ_MODE_CMD_LEN;
- s->needed_bytes += extract32(s->spansion_cr2v,
- SPANSION_DUMMY_CLK_POS,
- SPANSION_DUMMY_CLK_LEN
- );
+ if (extract32(s->spansion_cr2v, SPANSION_DUMMY_CLK_POS,
+ SPANSION_DUMMY_CLK_LEN) != 8) {
+ qemu_log_mask(LOG_UNIMP,
+ "M25P80: the number of dummy bits is not multiple of 8");
+ }
+ s->needed_bytes += 2;
break;
case MAN_NUMONYX:
s->needed_bytes += numonyx_extract_cfg_num_dummies(s);
@@ -1018,10 +1035,12 @@ static void decode_qio_read_cmd(Flash *s)
break;
case MAN_SPANSION:
s->needed_bytes += SPANSION_CONTINUOUS_READ_MODE_CMD_LEN;
- s->needed_bytes += extract32(s->spansion_cr2v,
- SPANSION_DUMMY_CLK_POS,
- SPANSION_DUMMY_CLK_LEN
- );
+ if (extract32(s->spansion_cr2v, SPANSION_DUMMY_CLK_POS,
+ SPANSION_DUMMY_CLK_LEN) != 8) {
+ qemu_log_mask(LOG_UNIMP,
+ "M25P80: the number of dummy bits is not multiple of 8");
+ }
+ s->needed_bytes += 4;
break;
case MAN_NUMONYX:
s->needed_bytes += numonyx_extract_cfg_num_dummies(s);
--
2.25.1
next prev parent reply other threads:[~2021-01-14 15:16 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-14 15:08 [PATCH 0/9] hw/block: m25p80: Fix the mess of dummy bytes needed for fast read commands Bin Meng
2021-01-14 15:08 ` [PATCH 1/9] hw/block: m25p80: Fix the number of dummy bytes needed for Windbond flashes Bin Meng
2021-01-14 15:08 ` [PATCH 2/9] hw/block: m25p80: Fix the number of dummy bytes needed for Numonyx/Micron flashes Bin Meng
2021-01-14 15:08 ` [PATCH 3/9] hw/block: m25p80: Fix the number of dummy bytes needed for Macronix flashes Bin Meng
2021-01-14 15:08 ` Bin Meng [this message]
2021-01-14 15:08 ` [PATCH 5/9] hw/block: m25p80: Support fast read for SST flashes Bin Meng
2021-01-14 15:08 ` [PATCH 6/9] hw/ssi: xilinx_spips: Fix generic fifo dummy cycle handling Bin Meng
2021-01-14 15:09 ` [PATCH 7/9] Revert "aspeed/smc: Fix number of dummy cycles for FAST_READ_4 command" Bin Meng
2021-01-14 15:09 ` [PATCH 8/9] Revert "aspeed/smc: snoop SPI transfers to fake dummy cycles" Bin Meng
2021-01-14 15:09 ` [PATCH 9/9] hw/ssi: npcm7xx_fiu: Correct the dummy cycle emulation logic Bin Meng
2021-01-14 17:12 ` Havard Skinnemoen via
2021-01-14 17:12 ` Havard Skinnemoen via
2021-01-14 15:59 ` [PATCH 0/9] hw/block: m25p80: Fix the mess of dummy bytes needed for fast read commands Cédric Le Goater
2021-01-14 16:12 ` no-reply
2021-01-14 18:13 ` Francisco Iglesias
2021-01-15 2:07 ` Bin Meng
2021-01-15 3:29 ` Havard Skinnemoen via
2021-01-15 3:29 ` Havard Skinnemoen via
2021-01-15 13:54 ` Bin Meng
2021-01-15 12:26 ` Francisco Iglesias
2021-01-15 14:38 ` Bin Meng
2021-01-18 10:05 ` Francisco Iglesias
2021-01-18 12:32 ` Bin Meng
2021-01-19 13:01 ` Francisco Iglesias
2021-01-20 14:20 ` Bin Meng
2021-01-21 8:50 ` Francisco Iglesias
2021-01-21 8:59 ` Bin Meng
2021-01-21 10:01 ` Francisco Iglesias
2021-01-21 14:18 ` Francisco Iglesias
2021-02-08 14:41 ` Bin Meng
2021-02-08 15:30 ` Edgar E. Iglesias
2021-02-09 9:35 ` Francisco Iglesias
2021-04-23 6:45 ` Bin Meng
2021-04-27 5:56 ` Alistair Francis
2021-04-27 8:54 ` Francisco Iglesias
2021-04-27 8:54 ` Francisco Iglesias
2021-04-27 14:32 ` Cédric Le Goater
2021-04-27 14:32 ` Cédric Le Goater
2021-04-28 13:12 ` Bin Meng
2021-04-28 13:12 ` Bin Meng
2021-04-28 13:54 ` Cédric Le Goater
2021-04-28 13:54 ` 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=20210114150902.11515-5-bmeng.cn@gmail.com \
--to=bmeng.cn@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=bin.meng@windriver.com \
--cc=f4bug@amsat.org \
--cc=frasse.iglesias@gmail.com \
--cc=kwolf@redhat.com \
--cc=marcin.krzeminski@nokia.com \
--cc=mreitz@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.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.