qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [U-Boot] Support of latest qemux86-64


From: Anton Gerasimov
Subject: Re: [Qemu-devel] [U-Boot] Support of latest qemux86-64
Date: Fri, 10 Nov 2017 18:34:06 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

Hooray, changing SYS_CAR_ADDR to 0x10000 in arch/x86/cpu/qemu/Kconfig
does the trick. Bin, what do you think about it?

Best regards,
Anton Gerasimov

On 11/10/2017 06:25 PM, Anton Gerasimov wrote:
> Yes, apparently 0xdfffc is in ROM area for QEMU (0xc0000 -- 0xe0000,
> defined in include/hw/loader.h). The next thing to figure out is why
> u-boot uses it as a stack area.
>
> Best regards,
> Anton Gerasimov
>
> On 11/10/2017 06:04 PM, Anton Gerasimov wrote:
>> 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
>>> <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]