Alper Nebi Yasak has uploaded this change for review.

View Change

mb/qemu/fw_cfg: Support using DMA to select fw_cfg file

Commit 8dc95ddbd4a935 ("emulation/qemu-i440fx: use fw_cfg_dma for
fw_cfg_read") adds DMA support to interface with the QEMU firmware
configuration device, and uses it to read from the "file"s exposed by
the device. However, the file selection step still uses port-based IO.

Use DMA for fw_cfg file selection when possible, as a step towards
porting this driver to other architectures.

Change-Id: I46f9915e6df04d371c7084815f16034c7e9879d4
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
---
M src/mainboard/emulation/qemu-i440fx/fw_cfg.c
1 file changed, 4 insertions(+), 1 deletion(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/80365/1
diff --git a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
index 5c23988..3a1def3 100644
--- a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
+++ b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c
@@ -44,7 +44,10 @@

static void fw_cfg_select(uint16_t entry)
{
- outw(entry, FW_CFG_PORT_CTL);
+ if (fw_ver & FW_CFG_VERSION_DMA)
+ fw_cfg_dma(FW_CFG_DMA_CTL_SELECT | entry << 16, NULL, 0);
+ else
+ outw(entry, FW_CFG_PORT_CTL);
}

static void fw_cfg_read(void *dst, int dstlen)

To view, visit change 80365. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: main
Gerrit-Change-Id: I46f9915e6df04d371c7084815f16034c7e9879d4
Gerrit-Change-Number: 80365
Gerrit-PatchSet: 1
Gerrit-Owner: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Gerrit-MessageType: newchange