aboutsummaryrefslogtreecommitdiff
path: root/hw/i386
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2024-04-25 20:43:15 +0200
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-05-08 19:43:23 +0200
commit8793d601f38b417d63820456582e1e22e51c2d34 (patch)
treeb4e6e6642a89d59d49d410874ca86e460fbe99df /hw/i386
parent77af05946e450a804b55b4a10b0b1fbd4f838fa4 (diff)
downloadqemu-8793d601f38b417d63820456582e1e22e51c2d34.zip
qemu-8793d601f38b417d63820456582e1e22e51c2d34.tar.gz
qemu-8793d601f38b417d63820456582e1e22e51c2d34.tar.bz2
hw/i386: Add the possibility to use i440fx and isapc without FDC
The i440fx and the isapc machines can be used in binaries without FDC, too. We just have to make sure that they don't try to instantiate the FDC when it is not available. Signed-off-by: Thomas Huth <thuth@redhat.com> Acked-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240425184315.553329-4-thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'hw/i386')
-rw-r--r--hw/i386/Kconfig2
-rw-r--r--hw/i386/pc_piix.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index 58ca8f2..40b1e44 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -72,7 +72,6 @@ config I440FX
imply VMPORT
imply VMMOUSE
select ACPI_PIIX4
- select FDC_ISA
select PC_PCI
select PC_ACPI
select PCI_I440FX
@@ -88,7 +87,6 @@ config ISAPC
depends on I386
imply VGA_ISA
select ISA_BUS
- select FDC_ISA
select PC
select IDE_ISA
# FIXME: it is in the same file as i440fx, and does not compile
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 8850c49..99efb3c 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -317,8 +317,8 @@ static void pc_init1(MachineState *machine, const char *pci_type)
}
/* init basic PC hardware */
- pc_basic_device_init(pcms, isa_bus, x86ms->gsi, x86ms->rtc, true,
- 0x4);
+ pc_basic_device_init(pcms, isa_bus, x86ms->gsi, x86ms->rtc,
+ !MACHINE_CLASS(pcmc)->no_floppy, 0x4);
pc_nic_init(pcmc, isa_bus, pcms->pcibus);
@@ -501,6 +501,7 @@ static void pc_i440fx_machine_options(MachineClass *m)
m->default_machine_opts = "firmware=bios-256k.bin";
m->default_display = "std";
m->default_nic = "e1000";
+ m->no_floppy = !module_object_class_by_name(TYPE_ISA_FDC);
m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
@@ -931,6 +932,7 @@ static void isapc_machine_options(MachineClass *m)
pcmc->has_reserved_memory = false;
m->default_nic = "ne2k_isa";
m->default_cpu_type = X86_CPU_TYPE_NAME("486");
+ m->no_floppy = !module_object_class_by_name(TYPE_ISA_FDC);
m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
}