[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] pc_sysfw: remove the rom_only property
From: |
Jordan Justen |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] pc_sysfw: remove the rom_only property |
Date: |
Mon, 3 Jun 2013 13:50:48 -0700 |
On Mon, Jun 3, 2013 at 8:19 AM, Paolo Bonzini <address@hidden> wrote:
> With the new semantics of pc_sysfw (no -pflash implies "old-style" ROM setup,
> -pflash implies "new-style" ROM setup), there is no need anymore for a compat
> property. Old machines simply will never use -pflash, and thus will always
> use old-style setup.
QEMU 1.2-1.5 could use -pflash if kvm was not used.
-Jordan
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/block/pc_sysfw.c | 64
> ++++++-----------------------------------------------
> hw/i386/pc_piix.c | 9 --------
> 2 files changed, 7 insertions(+), 66 deletions(-)
>
> diff --git a/hw/block/pc_sysfw.c b/hw/block/pc_sysfw.c
> index c6d4be4..651dda8 100644
> --- a/hw/block/pc_sysfw.c
> +++ b/hw/block/pc_sysfw.c
> @@ -38,7 +38,6 @@
>
> typedef struct PcSysFwDevice {
> SysBusDevice busdev;
> - uint8_t rom_only;
> uint8_t isapc_ram_fw;
> } PcSysFwDevice;
>
> @@ -76,39 +75,6 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
> memory_region_set_readonly(isa_bios, true);
> }
>
> -static void pc_fw_add_pflash_drv(void)
> -{
> - QemuOpts *opts;
> - QEMUMachine *machine;
> - char *filename;
> -
> - if (bios_name == NULL) {
> - bios_name = BIOS_FILENAME;
> - }
> - filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> - if (!filename) {
> - error_report("Can't open BIOS image %s", bios_name);
> - exit(1);
> - }
> -
> - opts = drive_add(IF_PFLASH, -1, filename, "readonly=on");
> -
> - g_free(filename);
> -
> - if (opts == NULL) {
> - return;
> - }
> -
> - machine = find_default_machine();
> - if (machine == NULL) {
> - return;
> - }
> -
> - if (!drive_init(opts, machine->block_default_type)) {
> - qemu_opts_del(opts);
> - }
> -}
> -
> static void pc_system_flash_init(MemoryRegion *rom_memory,
> DriveInfo *pflash_drv)
> {
> @@ -216,40 +182,24 @@ void pc_system_firmware_init(MemoryRegion *rom_memory)
>
> pflash_drv = drive_get(IF_PFLASH, 0, 0);
>
> - if (pflash_drv == NULL) {
> + if (sysfw_dev->isapc_ram_fw || pflash_drv == NULL) {
> /* When a pflash drive is not found, use rom-mode */
> - sysfw_dev->rom_only = 1;
> - } else if (kvm_enabled() && !kvm_readonly_mem_enabled()) {
> - /* Older KVM cannot execute from device memory. So, flash memory
> - * cannot be used unless the readonly memory kvm capability is
> present. */
> - fprintf(stderr, "qemu: pflash with kvm requires KVM readonly memory
> support\n");
> - exit(1);
> - }
> -
> - /* If rom-mode is active, use the old pc system rom initialization. */
> - if (sysfw_dev->rom_only) {
> old_pc_system_rom_init(rom_memory, sysfw_dev->isapc_ram_fw);
> return;
> }
>
> - /* If a pflash drive is not found, then create one using
> - the bios filename. */
> - if (pflash_drv == NULL) {
> - pc_fw_add_pflash_drv();
> - pflash_drv = drive_get(IF_PFLASH, 0, 0);
> - }
> -
> - if (pflash_drv != NULL) {
> - pc_system_flash_init(rom_memory, pflash_drv);
> - } else {
> - fprintf(stderr, "qemu: PC system firmware (pflash) not available\n");
> + if (kvm_enabled() && !kvm_readonly_mem_enabled()) {
> + /* Older KVM cannot execute from device memory. So, flash memory
> + * cannot be used unless the readonly memory kvm capability is
> present. */
> + fprintf(stderr, "qemu: pflash with kvm requires KVM readonly memory
> support\n");
> exit(1);
> }
> +
> + 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_UINT8("rom_only", PcSysFwDevice, rom_only, 0),
> DEFINE_PROP_END_OF_LIST(),
> };
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 530b6ab..00a729a 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -470,10 +470,6 @@ static QEMUMachine pc_machine_v1_1 = {
> #define PC_COMPAT_1_0 \
> PC_COMPAT_1_1,\
> {\
> - .driver = "pc-sysfw",\
> - .property = "rom_only",\
> - .value = stringify(1),\
> - }, {\
> .driver = TYPE_ISA_FDC,\
> .property = "check_media_rate",\
> .value = "off",\
> @@ -710,11 +706,6 @@ static QEMUMachine isapc_machine = {
> .compat_props = (GlobalProperty[]) {
> {
> .driver = "pc-sysfw",
> - .property = "rom_only",
> - .value = stringify(1),
> - },
> - {
> - .driver = "pc-sysfw",
> .property = "isapc_ram_fw",
> .value = stringify(1),
> },
> --
> 1.8.1.4
>
>
>