diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/block/Makefile.objs | 1 | ||||
-rw-r--r-- | hw/i386/Makefile.objs | 1 | ||||
-rw-r--r-- | hw/i386/pc.c | 2 | ||||
-rw-r--r-- | hw/i386/pc_piix.c | 6 | ||||
-rw-r--r-- | hw/i386/pc_q35.c | 1 | ||||
-rw-r--r-- | hw/i386/pc_sysfw.c (renamed from hw/block/pc_sysfw.c) | 52 |
6 files changed, 7 insertions, 56 deletions
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs index 25acc6722d..bf46f03b7e 100644 --- a/hw/block/Makefile.objs +++ b/hw/block/Makefile.objs @@ -7,7 +7,6 @@ common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o common-obj-$(CONFIG_ECC) += ecc.o common-obj-$(CONFIG_ONENAND) += onenand.o -common-obj-$(CONFIG_PC_SYSFW) += pc_sysfw.o common-obj-$(CONFIG_NVME_PCI) += nvme.o obj-$(CONFIG_SH4) += tc58128.o diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 205d22e4aa..45e61655e9 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -1,6 +1,7 @@ obj-$(CONFIG_KVM) += kvm/ obj-y += multiboot.o smbios.o obj-y += pc.o pc_piix.o pc_q35.o +obj-y += pc_sysfw.o obj-$(CONFIG_XEN) += xen_domainbuild.o xen_machine_pv.o obj-y += kvmvapic.o diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 6a0b042786..e8bc8ce172 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1145,7 +1145,7 @@ FWCfgState *pc_memory_init(MemoryRegion *system_memory, /* Initialize PC system firmware */ - pc_system_firmware_init(rom_memory); + pc_system_firmware_init(rom_memory, guest_info->isapc_ram_fw); option_rom_mr = g_malloc(sizeof(*option_rom_mr)); memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index cd88df9b9d..a19e17229b 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -128,6 +128,7 @@ static void pc_init1(MemoryRegion *system_memory, guest_info = pc_guest_info_init(below_4g_mem_size, above_4g_mem_size); guest_info->has_pci_info = has_pci_info; + guest_info->isapc_ram_fw = !pci_enabled; /* allocate ram and load rom/bios */ if (!xen_enabled()) { @@ -742,11 +743,6 @@ static QEMUMachine isapc_machine = { .init = pc_init_isa, .max_cpus = 1, .compat_props = (GlobalProperty[]) { - { - .driver = "pc-sysfw", - .property = "isapc_ram_fw", - .value = stringify(1), - }, { /* end of list */ } }, DEFAULT_MACHINE_OPTIONS, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 6bfc2ca92e..be6013f472 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -110,6 +110,7 @@ static void pc_q35_init(QEMUMachineInitArgs *args) guest_info = pc_guest_info_init(below_4g_mem_size, above_4g_mem_size); guest_info->has_pci_info = has_pci_info; + guest_info->isapc_ram_fw = false; /* allocate ram and load rom/bios */ if (!xen_enabled()) { diff --git a/hw/block/pc_sysfw.c b/hw/i386/pc_sysfw.c index 1902caba91..8246a1bdd4 100644 --- a/hw/block/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -165,26 +165,15 @@ static void old_pc_system_rom_init(MemoryRegion *rom_memory, bool isapc_ram_fw) bios); } -void pc_system_firmware_init(MemoryRegion *rom_memory) +void pc_system_firmware_init(MemoryRegion *rom_memory, bool isapc_ram_fw) { DriveInfo *pflash_drv; - PcSysFwDevice *sysfw_dev; - - /* - * TODO This device exists only so that users can switch between - * use of flash and ROM for the BIOS. The ability to switch was - * created because flash doesn't work with KVM. Once it does, we - * should drop this device. - */ - sysfw_dev = (PcSysFwDevice*) qdev_create(NULL, "pc-sysfw"); - - qdev_init_nofail(DEVICE(sysfw_dev)); pflash_drv = drive_get(IF_PFLASH, 0, 0); - if (sysfw_dev->isapc_ram_fw || pflash_drv == NULL) { + if (isapc_ram_fw || pflash_drv == NULL) { /* When a pflash drive is not found, use rom-mode */ - old_pc_system_rom_init(rom_memory, sysfw_dev->isapc_ram_fw); + old_pc_system_rom_init(rom_memory, isapc_ram_fw); return; } @@ -197,38 +186,3 @@ void pc_system_firmware_init(MemoryRegion *rom_memory) pc_system_flash_init(rom_memory, pflash_drv); } - -static Property pcsysfw_properties[] = { - DEFINE_PROP_UINT8("isapc_ram_fw", PcSysFwDevice, isapc_ram_fw, 0), - DEFINE_PROP_END_OF_LIST(), -}; - -static int pcsysfw_init(DeviceState *dev) -{ - return 0; -} - -static void pcsysfw_class_init (ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS (klass); - - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->desc = "PC System Firmware"; - dc->init = pcsysfw_init; - dc->props = pcsysfw_properties; -} - -static const TypeInfo pcsysfw_info = { - .name = "pc-sysfw", - .parent = TYPE_SYS_BUS_DEVICE, - .instance_size = sizeof (PcSysFwDevice), - .class_init = pcsysfw_class_init, -}; - -static void pcsysfw_register (void) -{ - type_register_static (&pcsysfw_info); -} - -type_init (pcsysfw_register); - |