From 87abccdd898ea98ede687c17e9177107cb5c7521 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Sat, 23 Feb 2019 11:45:01 +0100 Subject: 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 Reviewed-on: https://review.coreboot.org/c/31593 Reviewed-by: Philipp Deppenwiese Reviewed-by: Nico Huber Reviewed-by: Angel Pons Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/mainboard/emulation/qemu-i440fx/fw_cfg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c index 6a9ef03867..f43c280725 100644 --- a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c +++ b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c @@ -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; -- cgit v1.2.3