aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
diff options
context:
space:
mode:
authorThomas Heijligen <thomas.heijligen@secunet.com>2019-01-10 12:55:59 +0100
committerPatrick Georgi <pgeorgi@google.com>2019-01-31 08:39:18 +0000
commita05f8a96b4996c4eacada660b5db3a4046ad733d (patch)
treee2683eeb6be5e95505a2cd69a36370c9ab058024 /src/mainboard/emulation/qemu-i440fx/fw_cfg.c
parentbcd84fe149c29b48a8580dd64aba3a1333411039 (diff)
mb/emulation/qemu-i440fx: prepare fw_cfg for romstage usage
Add separate functions for selecting the port and reading the port. Romstage can now read incremental from the data port. Change-Id: I0ffde3bc2a4415a8af99af2275d16f6609099e37 Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com> Reviewed-on: https://review.coreboot.org/c/30846 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/fw_cfg.c')
-rw-r--r--src/mainboard/emulation/qemu-i440fx/fw_cfg.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
index 9b394f2e00..364221eacc 100644
--- a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
+++ b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
@@ -42,12 +42,22 @@ static int fw_cfg_present(void)
return fw_cfg_detected;
}
-void fw_cfg_get(int entry, void *dst, int dstlen)
+static void fw_cfg_select(uint16_t entry)
{
outw(entry, FW_CFG_PORT_CTL);
+}
+
+static void fw_cfg_read(void *dst, int dstlen)
+{
insb(FW_CFG_PORT_DATA, dst, dstlen);
}
+void fw_cfg_get(uint16_t entry, void *dst, int dstlen)
+{
+ fw_cfg_select(entry);
+ fw_cfg_read(dst, dstlen);
+}
+
static void fw_cfg_init_file(void)
{
u32 i, size, count = 0;