On 8/6/26 18:11, Peter Maydell wrote:
On Mon, 8 Jun 2026 at 17:02, Philippe Mathieu-Daudé
<[email protected]> wrote:
On 8/6/26 11:12, Peter Maydell wrote:
On Wed, 3 Jun 2026 at 08:08, Philippe Mathieu-Daudé <[email protected]> wrote:
On 29/5/26 19:46, Peter Maydell wrote:
The fw_cfg_init_io_dma() function allows the caller to specify the
base port number of the selector/data register and the base port
number of the DMA address register separately. No caller actually
uses this: they all pass in base + 4 for the dma_iobase.
To reduce the risk of unnecessary variation in what different x86
machine types use as their fw_cfg register layout, remove the
dma_iobase argument from fw_cfg_init_io_dma(), and have the function
always use the same "DMA port is base port + 4" layout.
Signed-off-by: Peter Maydell <[email protected]>
---
hw/i386/fw_cfg.c | 3 +--
hw/i386/microvm.c | 3 +--
hw/i386/pc.c | 3 +--
hw/nvram/fw_cfg.c | 8 ++++----
include/hw/nvram/fw_cfg.h | 17 +++++++++++++++--
5 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h
index 45a3747908..be3fb5f8aa 100644
--- a/include/hw/nvram/fw_cfg.h
+++ b/include/hw/nvram/fw_cfg.h
@@ -305,8 +305,21 @@ bool fw_cfg_add_file_from_generator(FWCfgState *s,
Object *parent, const char *part,
const char *filename, Error **errp);
-FWCfgState *fw_cfg_init_io_dma(uint32_t iobase, uint32_t dma_iobase,
- AddressSpace *dma_as);
+/**
+ * fw_cfg_init_io_dma:
+ * @iobase: x86 port number which is the base of the fw_cfg port range
s/x86/ISA/?
This is specifically x86, because we use this where we're
wiring fw_cfg up to the x86 in/out port instructions. There's
no ISA-bus version of fw_cfg. Anything other than x86 should
be using the memory-mapped fw_cfg.
But this "x86 port number" is really a address on the ISA I/O bus.
Maybe make explicit we want this method restricted to x86 instead?
I do, which is why I say "x86 port number".
"ISA port number which is the base of the fw_cfg port range (restricted
to x86 targets)."
This seems more confusing to me because it brings ISA into it.
We don't care about ISA or not ISA, we only care that this is
an x86 I/O port. It happens that on the PC the x86 I/O ports
can be handled by ISA cards, but it's not relevant here.
In particular, the fw_cfg device is not an ISA device.
Fine.