[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 22/27] hw/block/pflash_cfi02: Fix reset command not i
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-block] [PULL 22/27] hw/block/pflash_cfi02: Fix reset command not ignored during erase |
Date: |
Mon, 1 Jul 2019 21:59:07 -0300 |
From: Stephen Checkoway <address@hidden>
When the flash device is performing a chip erase, all commands are
ignored. When it is performing a sector erase, only the erase suspend
command is valid, which is currently not supported.
In particular, the reset command should not cause the device to reset to
read array mode while programming is on going.
Signed-off-by: Stephen Checkoway <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/block/pflash_cfi02.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 13f76fa71d..39daa95833 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -311,7 +311,8 @@ static void pflash_write(void *opaque, hwaddr offset,
uint64_t value,
trace_pflash_io_write(offset, width, width << 1, value, pfl->wcycle);
cmd = value;
if (pfl->cmd != 0xA0) {
- if (cmd == 0xF0) {
+ /* Reset does nothing during chip erase and sector erase. */
+ if (cmd == 0xF0 && pfl->cmd != 0x10 && pfl->cmd != 0x30) {
if (pfl->wcycle == WCYCLE_AUTOSELECT_CFI) {
/* Return to autoselect mode. */
pfl->wcycle = 3;
--
2.20.1
- [Qemu-block] [PULL 04/27] hw/block/pflash_cfi02: Fix debug format string, (continued)
- [Qemu-block] [PULL 04/27] hw/block/pflash_cfi02: Fix debug format string, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 07/27] hw/block/pflash_cfi02: Simplify a statement using fall through, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 06/27] hw/block/pflash_cfi02: Add helpers to manipulate the status bits, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 08/27] hw/block/pflash_cfi02: Use the ldst API in pflash_write(), Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 23/27] hw/block/pflash_cfi02: Implement multi-sector erase, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 15/27] hw/block/pflash_cfi02: Document the current CFI values, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 25/27] hw/block/pflash_cfi02: Use chip erase time specified in the CFI table, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 20/27] hw/block/pflash_cfi02: Split if() condition, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 18/27] hw/block/pflash_cfi02: Implement nonuniform sector sizes, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 14/27] hw/block/pflash_cfi02: Remove pointless local variable, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 22/27] hw/block/pflash_cfi02: Fix reset command not ignored during erase,
Philippe Mathieu-Daudé <=
- [Qemu-block] [PULL 11/27] hw/block/pflash_cfi02: Unify the MemoryRegionOps, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 17/27] hw/block/pflash_cfi02: Document 'Page Mode' operations are not supported, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 09/27] hw/block/pflash_cfi02: Use the ldst API in pflash_read(), Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 10/27] hw/block/pflash_cfi02: Extract the pflash_data_read() function, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 24/27] hw/block/pflash_cfi02: Implement erase suspend/resume, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 16/27] hw/block/pflash_cfi02: Hold the PRI table offset in a variable, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 26/27] hw/block/pflash_cfi02: Document commands, Philippe Mathieu-Daudé, 2019/07/01
- [Qemu-block] [PULL 12/27] hw/block/pflash_cfi02: Fix command address comparison, Philippe Mathieu-Daudé, 2019/07/01