qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5454] Increase write buffer size in pflash emulation (Thom


From: Andrzej Zaborowski
Subject: [Qemu-devel] [5454] Increase write buffer size in pflash emulation (Thomas Petazzoni).
Date: Sat, 11 Oct 2008 09:19:58 +0000

Revision: 5454
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5454
Author:   balrog
Date:     2008-10-11 09:19:57 +0000 (Sat, 11 Oct 2008)

Log Message:
-----------
Increase write buffer size in pflash emulation (Thomas Petazzoni).

The current flash emulation code advertises a write buffer size of 16
bytes (1 << 4, according to offset 0x2A of the CFI table). This is
very small compared to normal write buffer sizes, and makes the
process of writing to the flash very slow (at least from U-Boot).

This patch increases this size to 2048 bytes. Except the modification
of the CFI table, the only other required modification is to use
"value" instead of "cmd" to set pfl->counter, because cmd is truncated
to the 8 lower bits of value, while the number of bytes for a write
can now be greater than 255 bytes.

Signed-off-by: Thomas Petazzoni <address@hidden>

Modified Paths:
--------------
    trunk/hw/pflash_cfi01.c

Modified: trunk/hw/pflash_cfi01.c
===================================================================
--- trunk/hw/pflash_cfi01.c     2008-10-09 18:52:04 UTC (rev 5453)
+++ trunk/hw/pflash_cfi01.c     2008-10-11 09:19:57 UTC (rev 5454)
@@ -276,8 +276,8 @@
 
             break;
         case 0xe8:
-            DPRINTF("%s: block write of %x bytes\n", __func__, cmd);
-            pfl->counter = cmd;
+            DPRINTF("%s: block write of %x bytes\n", __func__, value);
+            pfl->counter = value;
             pfl->wcycle++;
             break;
         case 0x60:
@@ -583,7 +583,7 @@
     pfl->cfi_table[0x28] = 0x02;
     pfl->cfi_table[0x29] = 0x00;
     /* Max number of bytes in multi-bytes write */
-    pfl->cfi_table[0x2A] = 0x04;
+    pfl->cfi_table[0x2A] = 0x0B;
     pfl->cfi_table[0x2B] = 0x00;
     /* Number of erase block regions (uniform) */
     pfl->cfi_table[0x2C] = 0x01;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]