[U-Boot] Support of latest qemux86-64
Bin Meng
bmeng.cn at gmail.com
Mon Nov 13 03:16:18 UTC 2017
Hi Anton,
On Sat, Nov 11, 2017 at 1:34 AM, Anton Gerasimov
<anton at advancedtelematic.com> wrote:
> Hooray, changing SYS_CAR_ADDR to 0x10000 in arch/x86/cpu/qemu/Kconfig
> does the trick. Bin, what do you think about it?
>
Great! Would you please create a patch against U-Boot QEMU?
> 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
>>>> <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
>
Regards,
Bin
More information about the U-Boot
mailing list