]> Git Repo - qemu.git/commitdiff
block: m25p80: Dummy cycles for N25Q256/512
authorMarcin Krzeminski <[email protected]>
Wed, 30 Mar 2016 16:27:23 +0000 (17:27 +0100)
committerPeter Maydell <[email protected]>
Wed, 30 Mar 2016 16:27:23 +0000 (17:27 +0100)
Use the setting from the volatile cfg register to correctly
set the number of dummy cycles.

Signed-off-by: Marcin Krzeminski <[email protected]>
Reviewed-by: Peter Crosthwaite <[email protected]>
Message-id: 1458719789[email protected]
Signed-off-by: Peter Maydell <[email protected]>
hw/block/m25p80.c

index 3394f221d912c568e7a2e78c6502b7794dfee318..04e8730fa4a4e968b241b79662564ee8df650ada 100644 (file)
@@ -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;
This page took 0.027631 seconds and 4 git commands to generate.