All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] Uboot as x86_64 EFI payload
Date: Sun, 4 Feb 2018 06:40:37 -0700	[thread overview]
Message-ID: <CAPnjgZ3Un4kNaWXiuV5kVxp7BJyw8DMy87zsjPvhz87n4hxLuw@mail.gmail.com> (raw)
In-Reply-To: <444242653C72B24AA8F7F0908721C8252F2E149E@PTMEXCHANGE4.gmv.es>

Hi Javier,

On 29 January 2018 at 09:36, Javier Santos Romo <jsantos@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:

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(sjg at 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?

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

  reply	other threads:[~2018-02-04 13:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-29 15:18 [U-Boot] Uboot as x86_64 EFI payload Juan Alfonso Reyes Ajenjo
2018-01-29 16:36 ` Javier Santos Romo
2018-02-04 13:40   ` Simon Glass [this message]
2018-02-05  8:07     ` Javier Santos Romo
2018-02-05 16:43       ` Simon Glass
2018-06-08 12:25 ` Bin Meng
2018-06-10 14:34   ` Bin Meng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ3Un4kNaWXiuV5kVxp7BJyw8DMy87zsjPvhz87n4hxLuw@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.