[U-Boot] Support of latest qemux86-64

Anton Gerasimov anton at advancedtelematic.com
Fri Nov 10 17:04:52 UTC 2017


New guess:

in the most safe configuration of u-boot (CONFIG_SMP=n, lacpi disabled)
with Igor's patch applied `qemu-system-i386 -bios /path/to/uboot.rom`
fails on the first 'ret' instruction. GDB shows that memory at $esp
(0xdfffc at the entrance to board_init_f_mem) and everything around it
is zero despite 'call' and 'push' instructions executed. If you go one
commit before the breaking one it works fine, stuff gets put onto stack.
Could it that be that stack itself is in this 'readonly' area?

Thanks,
Anton Gerasimov

On 11/09/2017 02:58 AM, Bin Meng wrote:
> On Wed, Nov 8, 2017 at 9:05 PM, Anton Gerasimov
> <anton at advancedtelematic.com> wrote:
>> Adding Igor Mammedov to the loop.
>>
> Really add Igor Mammedov.
>
> Igor, can you help look at this?
>
>> On 11/08/2017 01:59 PM, Anton Gerasimov wrote:
>>> 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,
>>>
>>>
> Regards,
> Bin


-- 
Anton Gerasimov, ATS Advanced Telematic Systems GmbH
Kantstrasse 162, 10623 Berlin
Managing Directors: Dirk Pöschl, Armin G. Schmidt
Register Court: HRB 151501 B, Amtsgericht Charlottenburg




More information about the U-Boot mailing list