[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/17] block: m25p80: Dummy cycles for N25Q256/512
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 09/17] block: m25p80: Dummy cycles for N25Q256/512 |
Date: |
Wed, 30 Mar 2016 15:57:41 +0100 |
From: Marcin Krzeminski <address@hidden>
Use the setting from the volatile cfg register to correctly
set the number of dummy cycles.
Signed-off-by: Marcin Krzeminski <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
hw/block/m25p80.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 3394f22..04e8730 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -583,7 +583,11 @@ static void decode_new_cmd(Flash *s, uint32_t value)
case FAST_READ:
case DOR:
case QOR:
- s->needed_bytes = get_addr_length(s) + 1;
+ s->needed_bytes = get_addr_length(s);
+ if (((s->pi->jedec >> 16) & 0xFF) == JEDEC_NUMONYX) {
+ /* Dummy cycles modeled with bytes writes instead of bits */
+ s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
+ }
s->pos = 0;
s->len = 0;
s->state = STATE_COLLECTING_DATA;
@@ -596,7 +600,9 @@ static void decode_new_cmd(Flash *s, uint32_t value)
s->needed_bytes = 4;
break;
default:
- s->needed_bytes = get_addr_length(s) + 2;
+ s->needed_bytes = get_addr_length(s);
+ /* Dummy cycles modeled with bytes writes instead of bits */
+ s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
}
s->pos = 0;
s->len = 0;
@@ -610,7 +616,9 @@ static void decode_new_cmd(Flash *s, uint32_t value)
s->needed_bytes = 6;
break;
default:
- s->needed_bytes = get_addr_length(s) + 4;
+ s->needed_bytes = get_addr_length(s);
+ /* Dummy cycles modeled with bytes writes instead of bits */
+ s->needed_bytes += extract32(s->volatile_cfg, 4, 4);
}
s->pos = 0;
s->len = 0;
--
1.9.1
- [Qemu-devel] [PULL 00/17] target-arm queue, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 17/17] arm: implement query-gic-capabilities, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 12/17] block: m25p80: n25q256a/n25q512a models, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 11/17] block: m25p80: Implemented FSR register, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 14/17] arm: qmp: add query-gic-capabilities interface, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 13/17] block: m25p80: at25128a/at25256a models, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 04/17] block: m25p80: RESET_ENABLE and RESET_MEMORY commands, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 09/17] block: m25p80: Dummy cycles for N25Q256/512,
Peter Maydell <=
- [Qemu-devel] [PULL 06/17] block: m25p80: Extend address mode, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 08/17] block: m25p80: Add configuration registers, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 07/17] block: m25p80: 4byte address mode, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 05/17] block: m25p80: Widen flags variable, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 16/17] kvm: add kvm_device_supported() helper function, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 10/17] block: m25p80: Fast read and 4bytes commands, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 15/17] arm: enhance kvm_arm_create_scratch_host_vcpu, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 01/17] hw/gpio: Add the emulation of gpio_key, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 02/17] ARM: Virt: Use gpio_key for power button, Peter Maydell, 2016/03/30
- [Qemu-devel] [PULL 03/17] block: m25p80: Removed unused variable, Peter Maydell, 2016/03/30