Revision 133bb095 hw/block/pc_sysfw.c

b/hw/block/pc_sysfw.c
199 199
                                bios);
200 200
}
201 201

  
202
/*
203
 * Bug-compatible flash vs. ROM selection enabled?
204
 * A few older machines enable this.
205
 */
206
bool pc_sysfw_flash_vs_rom_bug_compatible;
207

  
208 202
void pc_system_firmware_init(MemoryRegion *rom_memory)
209 203
{
210 204
    DriveInfo *pflash_drv;
......
222 216

  
223 217
    pflash_drv = drive_get(IF_PFLASH, 0, 0);
224 218

  
225
    if (pc_sysfw_flash_vs_rom_bug_compatible) {
226
        /*
227
         * This is a Bad Idea, because it makes enabling/disabling KVM
228
         * guest-visible.  Do it only in bug-compatibility mode.
229
         */
230
        if (kvm_enabled()) {
231
            if (pflash_drv != NULL) {
232
                fprintf(stderr, "qemu: pflash cannot be used with kvm enabled\n");
233
                exit(1);
234
            } else {
235
                /* In old pc_sysfw_flash_vs_rom_bug_compatible mode, we assume
236
                 * that KVM cannot execute from device memory. In this case, we
237
                 * use old rom based firmware initialization for KVM. But, since
238
                 * this is different from non-kvm mode, this behavior is
239
                 * undesirable */
240
                sysfw_dev->rom_only = 1;
241
            }
242
        }
243
    } else if (pflash_drv == NULL) {
219
    if (pflash_drv == NULL) {
244 220
        /* When a pflash drive is not found, use rom-mode */
245 221
        sysfw_dev->rom_only = 1;
246 222
    } else if (kvm_enabled() && !kvm_readonly_mem_enabled()) {

Also available in: Unified diff