Hi, On Mon, Jan 29, 2018 at 11:18 PM, Juan Alfonso Reyes Ajenjo <jare...@gmv.com> wrote: > Hi, > I am Juan Alfonso Reyes, a firmware engineer in GMV. Currently we are > developing new boards based in Apollo Lake CPU. We are trying to load uboot > from UEFI. Using the default qemu-x86_efi_payload64_defconfig we are getting > "U-Boot EFI Payload 2002 No memory map" error code. > As I can see in the code 2002 means (efi_stub.c): > > ret = boot->get_memory_map(&size, NULL, &key, &desc_size, &version); > if (ret != EFI_BUFFER_TOO_SMALL) { > printhex2(BITS_PER_LONG); > printhex2(ret); > puts(" No memory map\n"); > while(1); > return ret; > } > > 0x20 -> BITS_PER_LONG 32bits > 0x02 -> EFI_INVALID_PARAMETER > > 32bits sounds weird for me, so I changed config to use CONFIG_X86_RUN_64BIT > instead of CONFIG_X86_RUN_32BIT. I have changed it and I got a compilation > error: > > In file included from include/common.h:53:0, > from cmd/efi.c:8: > cmd/efi.c: In function 'do_efi_mem': > ./arch/x86/include/asm/global_data.h:117:12: error: 'global_data_ptr' > undeclared (first use in this function) > #define gd global_data_ptr > > > I have surfed in the code and I have found this in > ./arch/x86/include/asm/global_data.h > > # if defined(CONFIG_EFI_APP) || CONFIG_IS_ENABLED(X86_64) > /* TODO(s...@chromium.org<mailto:s...@chromium.org>): Consider using a fixed > register for gd on x86_64 */ > #define gd global_data_ptr > > What do you mean with "Consider using a fixed register for gd" ?Can you help > us to make this work? Are we in the correct direction? >
The EFI 64-bit payload support is broken now. I will send a patch to fix this soon. Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot