diff options
author | Thomas Heijligen <thomas.heijligen@secunet.com> | 2019-01-10 16:53:34 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-01-31 08:38:59 +0000 |
commit | bcd84fe149c29b48a8580dd64aba3a1333411039 (patch) | |
tree | 5af623f349db03eb33125090bd96a294396e3d52 /src/mainboard/emulation/qemu-i440fx/northbridge.c | |
parent | d053f393c46c8a568f55c789e789e4e56026ad85 (diff) | |
download | coreboot-bcd84fe149c29b48a8580dd64aba3a1333411039.tar.xz |
mb/emulation/qemu-i440fx: change file handling
Reduce the number of fw_find_file calls by returning the file structure
at fw_cfg_check_file. The file structure can then be used to allocate memory
and access the file content directly without recurrence searching.
Remove now unnecessary function fw_cfg_load_file.
Fixed breaking function calls and add include guard at fw_cfg_if.h.
Change-Id: I48cc943aaa999e4323e9d7e5dd666c5316533dcc
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Reviewed-on: https://review.coreboot.org/c/30845
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'src/mainboard/emulation/qemu-i440fx/northbridge.c')
-rw-r--r-- | src/mainboard/emulation/qemu-i440fx/northbridge.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mainboard/emulation/qemu-i440fx/northbridge.c b/src/mainboard/emulation/qemu-i440fx/northbridge.c index 764e8a08c8..0ff4c54e99 100644 --- a/src/mainboard/emulation/qemu-i440fx/northbridge.c +++ b/src/mainboard/emulation/qemu-i440fx/northbridge.c @@ -59,17 +59,16 @@ static void cpu_pci_domain_read_resources(struct device *dev) struct resource *res; unsigned long tomk = 0, high; int idx = 10; - int size; + FWCfgFile f; pci_domain_read_resources(dev); - size = fw_cfg_check_file("etc/e820"); - if (size > 0) { + if (!fw_cfg_check_file(&f, "etc/e820") && f.size > 0) { /* supported by qemu 1.7+ */ - FwCfgE820Entry *list = malloc(size); + FwCfgE820Entry *list = malloc(f.size); int i; - fw_cfg_load_file("etc/e820", list); - for (i = 0; i < size/sizeof(*list); i++) { + fw_cfg_get(f.select, list, f.size); + for (i = 0; i < f.size / sizeof(*list); i++) { switch (list[i].type) { case 1: /* RAM */ printk(BIOS_DEBUG, "QEMU: e820/ram: 0x%08llx +0x%08llx\n", |