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 "files" 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>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80365
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
This commit is contained in:
Alper Nebi Yasak 2024-02-06 21:28:16 +03:00 committed by Felix Singer
parent 7b7bddc015
commit f6ea67cba1

View File

@ -44,6 +44,9 @@ static int fw_cfg_present(void)
static void fw_cfg_select(uint16_t entry) static void fw_cfg_select(uint16_t entry)
{ {
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); outw(entry, FW_CFG_PORT_CTL);
} }