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. 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
