Commit bd89f43f3254f672648ef292dff05736b339ab96

Authored by aurel32
1 parent 3f7cbbbd

target-ppc: workaround OpenBIOS limitation

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6133 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 6 additions and 0 deletions
hw/mac_nvram.c
@@ -43,6 +43,8 @@ struct MacIONVRAMState { @@ -43,6 +43,8 @@ struct MacIONVRAMState {
43 uint8_t *data; 43 uint8_t *data;
44 }; 44 };
45 45
  46 +#define DEF_SYSTEM_SIZE 0xc10
  47 +
46 /* Direct access to NVRAM */ 48 /* Direct access to NVRAM */
47 uint32_t macio_nvram_read (void *opaque, uint32_t addr) 49 uint32_t macio_nvram_read (void *opaque, uint32_t addr)
48 { 50 {
@@ -151,6 +153,10 @@ void pmac_format_nvram_partition (MacIONVRAMState *nvr, int len) @@ -151,6 +153,10 @@ void pmac_format_nvram_partition (MacIONVRAMState *nvr, int len)
151 nvr->data[end++] = '\0'; 153 nvr->data[end++] = '\0';
152 154
153 end = start + ((end - start + 15) & ~15); 155 end = start + ((end - start + 15) & ~15);
  156 + /* XXX: OpenBIOS is not able to grow up a partition. Leave some space for
  157 + new variables. */
  158 + if (end < DEF_SYSTEM_SIZE)
  159 + end = DEF_SYSTEM_SIZE;
154 OpenBIOS_finish_partition(part_header, end - start); 160 OpenBIOS_finish_partition(part_header, end - start);
155 161
156 // free partition 162 // free partition