Commit bd89f43f3254f672648ef292dff05736b339ab96
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 |