We use SeaBIOS as firmware, and pass the RAM size in a 32-bit
wide register. When using 4GB of RAM, the register is truncated
to 0, SeaBIOS is confused and halts the machine:
$ qemu-system-hppa -m 4g -serial stdio
SeaBIOS: Machine configured with too little memory (0 MB), minimum is 16 MB.
SeaBIOS wants SYSTEM HALT.
Display a warning in case the user is not looking at the serial
console.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/hppa/machine.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index d10c967d06..e74aafea2f 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -159,6 +159,10 @@ static void machine_hppa_init(MachineState *machine)
exit(1);
}
g_free(firmware_filename);
+ if (machine->ram_size > 4095 * MiB) {
+ /* FIXME As we use 32-bit registers, 4GiB is truncated to 0 */
+ warn_report("Firmware might misbehave with 4GB of RAM");
+ }
rom_region = g_new(MemoryRegion, 1);
memory_region_init_ram(rom_region, NULL, "firmware",
--
2.21.1