target-ppc: workaround OpenBIOS limitation
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 26 Dec 2008 23:05:23 +0000 (23:05 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 26 Dec 2008 23:05:23 +0000 (23:05 +0000)
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6133 c046a42c-6fe2-441c-8c8c-71466251a162

hw/mac_nvram.c

index 6bf666f..b4e9deb 100644 (file)
@@ -43,6 +43,8 @@ struct MacIONVRAMState {
     uint8_t *data;
 };
 
+#define DEF_SYSTEM_SIZE 0xc10
+
 /* Direct access to NVRAM */
 uint32_t macio_nvram_read (void *opaque, uint32_t addr)
 {
@@ -151,6 +153,10 @@ void pmac_format_nvram_partition (MacIONVRAMState *nvr, int len)
     nvr->data[end++] = '\0';
 
     end = start + ((end - start + 15) & ~15);
+    /* XXX: OpenBIOS is not able to grow up a partition. Leave some space for
+       new variables. */
+    if (end < DEF_SYSTEM_SIZE)
+        end = DEF_SYSTEM_SIZE;
     OpenBIOS_finish_partition(part_header, end - start);
 
     // free partition