aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/emulation/qemu-i440fx/northbridge.c
diff options
context:
space:
mode:
authorThomas Heijligen <thomas.heijligen@secunet.com>2019-01-10 16:53:34 +0100
committerPatrick Georgi <pgeorgi@google.com>2019-01-31 08:38:59 +0000
commitbcd84fe149c29b48a8580dd64aba3a1333411039 (patch)
tree5af623f349db03eb33125090bd96a294396e3d52 /src/mainboard/emulation/qemu-i440fx/northbridge.c
parentd053f393c46c8a568f55c789e789e4e56026ad85 (diff)
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.c11
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",