mb/emulation/qemu: Fix fw_cfg file loading

The change bcd84fe "mb/emulation/qemu-i440fx: change file handling"
introduced a regression where it loads only 4 bytes of the
ACPI and SMBIOS table, instead of the whole table.

Load the whole ACPI and SMBIOS table.

Tested on Qemu using GNU/Linux.

Change-Id: Ibacbf7caab9be5f181c12e9dd39a2893b13cf6c9
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/c/31593
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Patrick Rudolph
2019-02-23 11:45:01 +01:00
committed by Nico Huber
parent f606a2f5e6
commit 87abccdd89

View File

@@ -251,7 +251,7 @@ unsigned long fw_cfg_acpi_tables(unsigned long start)
printk(BIOS_DEBUG, "QEMU: loading \"%s\" to 0x%lx (len %d)\n",
s[i].alloc.file, current, f.size);
fw_cfg_get(f.select, (void *)current, sizeof(current));
fw_cfg_get(f.select, (void *)current, f.size);
addrs[i] = current;
current += f.size;
break;
@@ -454,7 +454,7 @@ unsigned long fw_cfg_smbios_tables(int *handle, unsigned long *current)
* We'll exclude the end marker as coreboot will add one.
*/
printk(BIOS_DEBUG, "QEMU: loading smbios tables to 0x%lx\n", start);
fw_cfg_get(f.select, (void *)start, sizeof(start));
fw_cfg_get(f.select, (void *)start, f.size);
end = start;
do {
t0 = (struct smbios_type0*)end;