]> git.proxmox.com Git - qemu.git/commitdiff
pflash_cfi01: fix vendor specific extended query
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 3 Sep 2012 20:47:03 +0000 (22:47 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 12 Oct 2012 02:44:19 +0000 (21:44 -0500)
pflash_cfi01 announces a version number of 1.1, which implies
"Protection Register Information" and "Burst Read information"
sections, which are not provided.

Decrease the version number to 1.0 so that only the "Protection
Register Information" section is needed.

Set the number of protection fields (0x3f) to 0x01, as 0x00 means 256
protections field, which makes the CFI table bigger than the current
implementation, causing some kernels to fail to read it.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
(cherry picked from commit 262e1eaafabf32d33a9fa0b03b3c8ea426c5ae1b)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/pflash_cfi01.c

index d1c742379ba576336e8fea23f60540ed7bc3e1e3..d56b51abe62adaac7462d1a19c348bb443cbf9d6 100644 (file)
@@ -711,7 +711,7 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base,
     pfl->cfi_table[0x33] = 'I';
 
     pfl->cfi_table[0x34] = '1';
-    pfl->cfi_table[0x35] = '1';
+    pfl->cfi_table[0x35] = '0';
 
     pfl->cfi_table[0x36] = 0x00;
     pfl->cfi_table[0x37] = 0x00;
@@ -723,6 +723,8 @@ pflash_t *pflash_cfi01_register(target_phys_addr_t base,
     pfl->cfi_table[0x3b] = 0x00;
     pfl->cfi_table[0x3c] = 0x00;
 
+    pfl->cfi_table[0x3f] = 0x01; /* Number of protection fields */
+
     return pfl;
 }