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