From: Paolo Bonzini <pbonzini@redhat.com>
To: Jordan Justen <jljusten@gmail.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>,
qemu-devel <qemu-devel@nongnu.org>,
Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 3/3] pc_sysfw: do not make it a device anymore
Date: Mon, 03 Jun 2013 23:00:49 +0200 [thread overview]
Message-ID: <51AD0401.2010000@redhat.com> (raw)
In-Reply-To: <CAFe8ug-jrbvnuxw12hO7BDgFzoO+qOcM=xzBsoqVk62_Twr4_g@mail.gmail.com>
Il 03/06/2013 22:46, Jordan Justen ha scritto:
> Could you separate out the isapc_ram_fw part? It seems like a viable
> separate change, and a better way to handle that situation.
I don't think this change is useful enough without the rest. The real
cleanup comes from differentiating BIOS vs. flash purely based on the
command line.
Paolo
> -Jordan
>
> On Mon, Jun 3, 2013 at 8:19 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Move the code to hw/i386, the sole remaining property is available
>> as !pci_enabled.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> default-configs/i386-softmmu.mak | 1 -
>> default-configs/x86_64-softmmu.mak | 1 -
>> hw/block/Makefile.objs | 1 -
>> hw/i386/Makefile.objs | 1 +
>> hw/i386/pc.c | 5 ++--
>> hw/i386/pc_piix.c | 7 +-----
>> hw/i386/pc_q35.c | 2 +-
>> hw/{block => i386}/pc_sysfw.c | 51 +++-----------------------------------
>> include/hw/i386/pc.h | 6 +++--
>> 9 files changed, 13 insertions(+), 62 deletions(-)
>> rename hw/{block => i386}/pc_sysfw.c (82%)
>>
>> diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
>> index 03deca2..fb84f80 100644
>> --- a/default-configs/i386-softmmu.mak
>> +++ b/default-configs/i386-softmmu.mak
>> @@ -34,7 +34,6 @@ CONFIG_PAM=y
>> CONFIG_PCI_PIIX=y
>> CONFIG_PCI_HOTPLUG=y
>> CONFIG_WDT_IB700=y
>> -CONFIG_PC_SYSFW=y
>> CONFIG_XEN_I386=$(CONFIG_XEN)
>> CONFIG_ISA_DEBUG=y
>> CONFIG_ISA_TESTDEV=y
>> diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
>> index 599b630..794d986 100644
>> --- a/default-configs/x86_64-softmmu.mak
>> +++ b/default-configs/x86_64-softmmu.mak
>> @@ -34,7 +34,6 @@ CONFIG_PAM=y
>> CONFIG_PCI_PIIX=y
>> CONFIG_PCI_HOTPLUG=y
>> CONFIG_WDT_IB700=y
>> -CONFIG_PC_SYSFW=y
>> CONFIG_XEN_I386=$(CONFIG_XEN)
>> CONFIG_ISA_DEBUG=y
>> CONFIG_ISA_TESTDEV=y
>> diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
>> index e4329a0..94491bf 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
>>
>> obj-$(CONFIG_SH4) += tc58128.o
>>
>> diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
>> index 205d22e..45e6165 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 197d218..db5bc26 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -1019,7 +1019,8 @@ void *pc_memory_init(MemoryRegion *system_memory,
>> ram_addr_t below_4g_mem_size,
>> ram_addr_t above_4g_mem_size,
>> MemoryRegion *rom_memory,
>> - MemoryRegion **ram_memory)
>> + MemoryRegion **ram_memory,
>> + bool isapc_ram_fw)
>> {
>> int linux_boot, i;
>> MemoryRegion *ram, *option_rom_mr;
>> @@ -1051,7 +1052,7 @@ void *pc_memory_init(MemoryRegion *system_memory,
>>
>>
>> /* Initialize PC system firmware */
>> - pc_system_firmware_init(rom_memory);
>> + pc_system_firmware_init(rom_memory, isapc_ram_fw);
>>
>> option_rom_mr = g_malloc(sizeof(*option_rom_mr));
>> memory_region_init_ram(option_rom_mr, "pc.rom", PC_ROM_SIZE);
>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>> index 00a729a..4bf5adf 100644
>> --- a/hw/i386/pc_piix.c
>> +++ b/hw/i386/pc_piix.c
>> @@ -124,7 +124,7 @@ static void pc_init1(MemoryRegion *system_memory,
>> fw_cfg = pc_memory_init(system_memory,
>> kernel_filename, kernel_cmdline, initrd_filename,
>> below_4g_mem_size, above_4g_mem_size,
>> - rom_memory, &ram_memory);
>> + rom_memory, &ram_memory, !pci_enabled);
>> }
>>
>> gsi_state = g_malloc0(sizeof(*gsi_state));
>> @@ -704,11 +704,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 7888dfe..eb7bf30 100644
>> --- a/hw/i386/pc_q35.c
>> +++ b/hw/i386/pc_q35.c
>> @@ -109,7 +109,7 @@ static void pc_q35_init(QEMUMachineInitArgs *args)
>> if (!xen_enabled()) {
>> pc_memory_init(get_system_memory(), kernel_filename, kernel_cmdline,
>> initrd_filename, below_4g_mem_size, above_4g_mem_size,
>> - rom_memory, &ram_memory);
>> + rom_memory, &ram_memory, false);
>> }
>>
>> /* irq lines */
>> diff --git a/hw/block/pc_sysfw.c b/hw/i386/pc_sysfw.c
>> similarity index 82%
>> rename from hw/block/pc_sysfw.c
>> rename to hw/i386/pc_sysfw.c
>> index 651dda8..b007be0 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,37 +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);
>> -
>> - 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);
>> -
>> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
>> index 663426c..983a5b5 100644
>> --- a/include/hw/i386/pc.h
>> +++ b/include/hw/i386/pc.h
>> @@ -87,7 +87,8 @@ void *pc_memory_init(MemoryRegion *system_memory,
>> ram_addr_t below_4g_mem_size,
>> ram_addr_t above_4g_mem_size,
>> MemoryRegion *rom_memory,
>> - MemoryRegion **ram_memory);
>> + MemoryRegion **ram_memory,
>> + bool isapc_ram_fw);
>> qemu_irq *pc_allocate_cpu_irq(void);
>> DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus);
>> void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
>> @@ -168,7 +169,8 @@ static inline bool isa_ne2000_init(ISABus *bus, int base, int irq, NICInfo *nd)
>> }
>>
>> /* pc_sysfw.c */
>> -void pc_system_firmware_init(MemoryRegion *rom_memory);
>> +void pc_system_firmware_init(MemoryRegion *rom_memory,
>> + bool isapc_ram_fw);
>>
>> /* pvpanic.c */
>> int pvpanic_init(ISABus *bus);
>> --
>> 1.8.1.4
>>
>>
>
>
next prev parent reply other threads:[~2013-06-03 21:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-03 15:19 [Qemu-devel] [PATCH 0/3] Remove legacy sysfw code Paolo Bonzini
2013-06-03 15:19 ` [Qemu-devel] [PATCH 1/3] sysfw: remove read-only pc_sysfw_flash_vs_rom_bug_compatible Paolo Bonzini
2013-06-03 20:36 ` Jordan Justen
2013-06-03 20:57 ` Paolo Bonzini
2013-06-04 9:17 ` Markus Armbruster
2013-06-04 9:14 ` Markus Armbruster
2013-06-04 9:43 ` Paolo Bonzini
2013-06-03 15:19 ` [Qemu-devel] [PATCH 2/3] pc_sysfw: remove the rom_only property Paolo Bonzini
2013-06-03 20:50 ` Jordan Justen
2013-06-03 21:00 ` Paolo Bonzini
2013-06-03 15:19 ` [Qemu-devel] [PATCH 3/3] pc_sysfw: do not make it a device anymore Paolo Bonzini
2013-06-03 20:46 ` Jordan Justen
2013-06-03 21:00 ` Paolo Bonzini [this message]
2013-06-03 21:56 ` [Qemu-devel] [PATCH 0/3] Remove legacy sysfw code Jordan Justen
2013-06-04 6:46 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51AD0401.2010000@redhat.com \
--to=pbonzini@redhat.com \
--cc=armbru@redhat.com \
--cc=jljusten@gmail.com \
--cc=jordan.l.justen@intel.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.