
To whoever might be interested: I've bisected qemu and the breaking commit is 208fa0e43645edd0b0d8f838857dfc79daff40a8 (pc: make 'pc.rom' readonly when machine has PCI enabled). It's just three lines added, I'll paste the whole patch here. Not quite sure what can we do here though.
diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 22e16031b0..59435390ba 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1443,6 +1443,9 @@ void pc_memory_init(PCMachineState *pcms, option_rom_mr = g_malloc(sizeof(*option_rom_mr)); memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, &error_fatal); + if (pcmc->pci_enabled) { + memory_region_set_readonly(option_rom_mr, true); + } memory_region_add_subregion_overlap(rom_memory, PC_ROM_MIN_VGA, option_rom_mr,
Thanks, Anton
On 11/06/2017 02:55 AM, Bin Meng wrote:
+QEMU dev list
On Fri, Nov 3, 2017 at 10:07 PM, Anton Gerasimov anton@advancedtelematic.com wrote:
Hi all,
I'm trying to use u-boot (v2017.01) with qemu-system-x86_64 v2.10.0 and run into a "trying to execute code outside of RAM or ROM at xxxxx" issue. It happens both when I build and use u-boot as a bios and as EFI payload, just the addresses in the error message are different. On qemu v2.5.0 at least EFI option works fine.
I understand that it can be (and probably is) a QEMU issue, but maybe someone on the list already encountered it and knows a workaround or has successfully used u-boot with QEMU >=2.10.0 and can share their experience.
Yes, I just tested latest U-Boot x86 ROM image with QEMU 2.9.1 and 2.10.1. The same U-Boot ROM image boots with 2.9.1 but not with 2.10.1.
I built U-Boot as follows:
$ make qemu-x86_defconfig $ make
Does anyone have any hints?
Regards, Bin