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.

thanks
-- PMM

Reply via email to