Commit c886fc4c authored by Marc Marí's avatar Marc Marí Committed by Gerd Hoffmann
Browse files

Enable fw_cfg DMA interface for x86



Enable the fw_cfg DMA interface for all the x86 platforms.

Based on Gerd Hoffman's initial implementation.

Signed-off-by: default avatarMarc Marí <markmb@redhat.com>
Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 0b341a85
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -752,14 +752,15 @@ static void pc_build_smbios(FWCfgState *fw_cfg)
    }
}

static FWCfgState *bochs_bios_init(void)
static FWCfgState *bochs_bios_init(AddressSpace *as)
{
    FWCfgState *fw_cfg;
    uint64_t *numa_fw_cfg;
    int i, j;
    unsigned int apic_id_limit = pc_apic_id_limit(max_cpus);

    fw_cfg = fw_cfg_init_io(BIOS_CFG_IOPORT);
    fw_cfg = fw_cfg_init_io_dma(BIOS_CFG_IOPORT, BIOS_CFG_IOPORT + 4, as);

    /* FW_CFG_MAX_CPUS is a bit confusing/problematic on x86:
     *
     * SeaBIOS needs FW_CFG_MAX_CPUS for CPU hotplug, but the CPU hotplug
@@ -1393,7 +1394,8 @@ FWCfgState *pc_memory_init(PCMachineState *pcms,
                                        option_rom_mr,
                                        1);

    fw_cfg = bochs_bios_init();
    fw_cfg = bochs_bios_init(&address_space_memory);

    rom_set_fw(fw_cfg);

    if (guest_info->has_reserved_memory && pcms->hotplug_memory.base) {