OSDN Git Service

pflash: Dont open memarea for full IO if already done.
authorEdgar E. Iglesias <edgar.iglesias@petalogix.com>
Sun, 24 Jan 2010 18:28:55 +0000 (19:28 +0100)
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>
Sun, 24 Jan 2010 18:28:55 +0000 (19:28 +0100)
When wcycle is non zero the area is already opened for readable IO.
Avoiding the re-registration of the memarea significantly speeds up
the flash emulation. In particular for flashes connected through 8 or
16-bit buses.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
hw/pflash_cfi01.c

index b0c7b4c..d9e30d9 100644 (file)
@@ -247,8 +247,10 @@ static void pflash_write(pflash_t *pfl, target_phys_addr_t offset,
     DPRINTF("%s: writing offset " TARGET_FMT_plx " value %08x width %d wcycle 0x%x\n",
             __func__, offset, value, width, pfl->wcycle);
 
-    /* Set the device in I/O access mode */
-    cpu_register_physical_memory(pfl->base, pfl->total_len, pfl->fl_mem);
+    if (!pfl->wcycle) {
+        /* Set the device in I/O access mode */
+        cpu_register_physical_memory(pfl->base, pfl->total_len, pfl->fl_mem);
+    }
 
     switch (pfl->wcycle) {
     case 0: