hw/block/pflash_cfi02: Fix reset command not ignored during erase
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 <stephen.checkoway@oberlin.edu> Message-Id: <20190426162624.55977-8-stephen.checkoway@oberlin.edu> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
46fb7809b5
commit
a979104239
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user