Hi Javier, On 5 February 2018 at 01:07, Javier Santos Romo <[email protected]> wrote: > Hi Simon, > > Thanks for your support. We just need a x64 bootloader because we are using a > 64-bit EFI. We understood, reading README.efi file from U-boot documentation > that we could use u-boot like an 64-bit payload. However, we don´t understand > why we get the memory map error. Anyway, we will consider other possibilities.
There is no need to use a 64-bit bootloader with UEFI. In fact the U-Boot payload is specifically designed to jump from 64-bit to 32-bit for running U-Boot. It also have native 64-bit kernel support so it can load a 64-bit kernel. I suggest you try it in 32-bit mode for now. That is how we use it here. There is not a lot of benefit to using U-Boot in 64-bit mode, but if you find something I'm interested to hear it. If you hit a memory allocation problem in that case, please let us know. [BTW it is best not to top-post on a mailing list] Regards, Simon > > Thanks a lot, > BR > > > > > > > > > > > > > > > > -----Mensaje original----- > De: [email protected] [mailto:[email protected]] En nombre de Simon Glass > Enviado el: domingo, 4 de febrero de 2018 14:41 > Para: Javier Santos Romo <[email protected]> > CC: [email protected]; [email protected]; Juan Alfonso Reyes Ajenjo > <[email protected]> > Asunto: Re: Uboot as x86_64 EFI payload > > Hi Javier, > > On 29 January 2018 at 09:36, Javier Santos Romo <[email protected]> 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: > > Are you using 64-bit EFI or 32-bit? > > I think you was CONFIG_EFI_STUB_64BIT > > See doc/README.efi for some info about this. Note this this option makes the > stub run as a 64-bit EFI app, but U-Boot itself is still only 32-bit. > >> >> >> >> 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([email protected]): 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? > > This is for running U-Boot itself as a 64-bit app. This is not currently > supported as an EFI payload, only as a bar-metal U-Boot (not run from EFI). > > The meaning of the comment is that on 32-bit x86 we use the FS register to > store gd. See: > > #define gd get_fs_gd_ptr() > > We could potentially make gd use a fixed x86 register on 64-bit x86 as well. > This comment is about considering that. > > Regards, > Simon > > >> >> >> >> Thank you very much, >> >> >> >> Best regards, >> >> ________________________________ >> >> Juan Alfonso Reyes Ajenjo >> Ingeniero en Informatica / Computer Systems Engineer >> >> Ingeniero en Automática y Electrónica Industrial / Automation and >> Industrial Electronics Engineer >> >> GMV >> Juan de Herrera nº17 >> Boecillo >> E-47151 Valladolid >> Tel. +34 983 54 65 54 >> Fax +34 983 54 65 53 >> www.gmv.com >> >> >> >> >> >> >> >> >> P Please consider the environment before printing this e-mail. >> >> >> P Please consider the environment before printing this e-mail. > > What does this mean? > >> >> ________________________________ >> This message including any attachments may contain confidential information, >> according to our Information Security Management System, and intended solely >> for a specific individual to whom they are addressed. Any unauthorised copy, >> disclosure or distribution of this message is strictly forbidden. If you >> have received this transmission in error, please notify the sender >> immediately and delete it. Thank you. >> ________________________________ >> Este mensaje, y en su caso, cualquier fichero anexo al mismo, puede contener >> información clasificada por su emisor como confidencial en el marco de su >> Sistema de Gestión de Seguridad de la Información siendo para uso exclusivo >> del destinatario, quedando prohibida su divulgación copia o distribución a >> terceros sin la autorización expresa del remitente. Si Vd. ha recibido este >> mensaje erróneamente, se ruega lo notifique al remitente y proceda a su >> borrado. Gracias por su colaboración. >> ________________________________ >> Esta mensagem, incluindo qualquer ficheiro anexo, pode conter informação >> confidencial, de acordo com nosso Sistema de Gestão de Segurança da >> Informação, sendo para uso exclusivo do destinatário e estando proibida a >> sua divulgação, cópia ou distribuição a terceiros sem autorização expressa >> do remetente da mesma. Se recebeu esta mensagem por engano, por favor avise >> de imediato o remetente e apague-a. Obrigado pela sua colaboração. >> ________________________________ > > Would you mind trimming your signature down for the mailing list? > > Regards, > Simon > > P Please consider the environment before printing this e-mail. > > ______________________ > This message including any attachments may contain confidential > information, according to our Information Security Management System, > and intended solely for a specific individual to whom they are addressed. > Any unauthorised copy, disclosure or distribution of this message > is strictly forbidden. If you have received this transmission in error, > please notify the sender immediately and delete it. > > ______________________ > Este mensaje, y en su caso, cualquier fichero anexo al mismo, > puede contener informacion clasificada por su emisor como confidencial > en el marco de su Sistema de Gestion de Seguridad de la > Informacion siendo para uso exclusivo del destinatario, quedando > prohibida su divulgacion copia o distribucion a terceros sin la > autorizacion expresa del remitente. Si Vd. ha recibido este mensaje > erroneamente, se ruega lo notifique al remitente y proceda a su borrado. > Gracias por su colaboracion. > > ______________________ > _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

