diff options
Diffstat (limited to 'src/mainboard/emulation/qemu-i440fx/fw_cfg.c')
-rw-r--r-- | src/mainboard/emulation/qemu-i440fx/fw_cfg.c | 12 |
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; |