The acpi tables are not corrected loaded into guest's memory for big-endian hosts because of a linker-loader field swapped incorrectly. Fixed that.
Signed-off-by: Marcel Apfelbaum <marce...@redhat.com> --- Note that the acpi test still fails because of an iasl issue, I will send a patch separately that disables disassembly validation for big endian machines until we'll have an iasl fix. hw/i386/bios-linker-loader.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/i386/bios-linker-loader.c b/hw/i386/bios-linker-loader.c index aa56184..0e1cfb7 100644 --- a/hw/i386/bios-linker-loader.c +++ b/hw/i386/bios-linker-loader.c @@ -109,9 +109,8 @@ void bios_linker_loader_alloc(GArray *linker, strncpy(entry.alloc.file, file, sizeof entry.alloc.file - 1); entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ALLOCATE); entry.alloc.align = cpu_to_le32(alloc_align); - entry.alloc.zone = cpu_to_le32(alloc_fseg ? - BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG : - BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH); + entry.alloc.zone = alloc_fseg ? BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG : + BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH; /* Alloc entries must come first, so prepend them */ g_array_prepend_vals(linker, &entry, sizeof entry); -- 1.8.3.1