
Hi Markus,
On 30 November 2016 at 04:32, Markus Valentin mv@denx.de wrote:
Hi,
im trying to run u-boot as uefi-payload for qemu this works totally fine.
My real target is a Minnowboard Turbot. I did use the minnowmax_defconfig enabled CONFIG_EFI, CONFIG_EFI_STUB and CONFIG_EFI_STUB_64BIT. The Board has the latest uefi by Intel installed(0.93, X64).
When i load U-Boot as payload for the board-uefi the efi_main function gets executed but the call to "cpu_call32" seems to get stuck ( i think its at the "retf" arch/x86/cpu/call32.S:37).
Debuglog:
Shell> u-boot-payload_64.efi U-Boot EFI Payload gdt: 00000047, addr: 00000000784fd570 00: 00000000 00000000 08: 00cf9200 0000ffff 10: 00af9a00 0000ffff 18: 00cf9300 0000ffff 20: 00cf9a00 0000ffff 28: 00000000 00000000 30: 00cf9200 0000ffff 38: 00af9b00 0000ffff 40: 00000000 00000000 32-bit code segment: 20 page_table: 79313000 EFI table at 78787018 size 00000760
Does anyone have experiences with this issue or with running u-boot as uefi-64 payload at all?
I have used this on the original Minnowboard and it is used on some broadwell platforms.
I did hit a similar problem due to the 'ret' not generating the right instruction. I thought it was fixed but I suppose it is not impossible that the gcc toolchains might generate different op codes in different situations.
Which toolchain are you using?
Regards, Simon