On Wed, Dec 03, 2025 at 07:09:28AM +0100, Philippe Mathieu-Daudé wrote: > Hi Zhao, > > This is my answer to this comment of yours: > > > Although other callers of fw_cfg_init_io_dma() besides x86 also pass > > DMA arguments to create DMA-enabled FwCfgIoState, the "dma_enabled" > > property of FwCfgIoState cannot yet be removed, because Sun4u and Sun4v > > still create DMA-disabled FwCfgIoState (bypass fw_cfg_init_io_dma()) in > > sun4uv_init() (hw/sparc64/sun4u.c). > > > > Maybe reusing fw_cfg_init_io_dma() for them would be a better choice, or > > adding fw_cfg_init_io_nodma(). However, before that, first simplify the > > handling of FwCfgState in x86. > > > > Considering that FwCfgIoState in x86 enables DMA by default, remove the > > handling for DMA-disabled cases and replace DMA checks with assertions > > to ensure that the default DMA-enabled setting is not broken. > > My series is to apply just after this patch of your series: > > [PATCH v5 10/28] hw/mips/loongson3_virt: Prefer using > fw_cfg_init_mem_nodma() > > Regards, > > Phil.
pc/fwcfg things: Reviewed-by: Michael S. Tsirkin <[email protected]> > Based-on: <[email protected]> > > Philippe Mathieu-Daudé (12): > hw/ppc/mac: Use fw_cfg_init_mem_nodma() > hw/sparc/sun4m: Use fw_cfg_init_mem_nodma() > hw/nvram/fw_cfg: Factor fw_cfg_init_mem_internal() out > hw/nvram/fw_cfg: Rename fw_cfg_init_mem_wide() -> > fw_cfg_init_mem_dma() > hw/nvram/fw_cfg: Propagate I/O MemoryRegion to fw_cfg_init_io_dma() > hw/nvram/fw_cfg: Factor fw_cfg_init_io_internal() out > hw/nvram/fw_cfg: Add fw_cfg_init_io_nodma() helper > hw/sparc64/sun4u: Use fw_cfg_init_io_nodma() > hw/nvram/fw_cfg: Remove fw_cfg_io_properties::dma_enabled > hw/i386/x86: Remove X86MachineClass::fwcfg_dma_enabled field > hw/i386/pc: Remove multiboot.bin > hw/i386: Remove linuxboot.bin > > Zhao Liu (1): > hw/i386: Assume fw_cfg DMA is always enabled > > include/hw/i386/x86.h | 2 - > include/hw/nvram/fw_cfg.h | 11 +- > pc-bios/optionrom/optionrom.h | 4 - > hw/arm/virt.c | 2 +- > hw/i386/fw_cfg.c | 19 +-- > hw/i386/microvm.c | 6 +- > hw/i386/multiboot.c | 7 +- > hw/i386/pc.c | 7 +- > hw/i386/x86-common.c | 7 +- > hw/i386/x86.c | 2 - > hw/loongarch/fw_cfg.c | 4 +- > hw/nvram/fw_cfg.c | 61 ++++---- > hw/ppc/mac_newworld.c | 11 +- > hw/ppc/mac_oldworld.c | 11 +- > hw/riscv/virt.c | 4 +- > hw/sparc/sun4m.c | 12 +- > hw/sparc64/sun4u.c | 9 +- > pc-bios/meson.build | 2 - > pc-bios/multiboot.bin | Bin 1024 -> 0 bytes > pc-bios/optionrom/Makefile | 2 +- > pc-bios/optionrom/linuxboot.S | 195 ------------------------- > pc-bios/optionrom/multiboot.S | 232 ----------------------------- > pc-bios/optionrom/multiboot_dma.S | 234 +++++++++++++++++++++++++++++- > 23 files changed, 302 insertions(+), 542 deletions(-) > delete mode 100644 pc-bios/multiboot.bin > delete mode 100644 pc-bios/optionrom/linuxboot.S > delete mode 100644 pc-bios/optionrom/multiboot.S > > -- > 2.51.0 > >
