19 Jun, 2018

20 commits


17 Jun, 2018

14 commits

  • Currently when EFI application boots, it says:

    CPU: x86_64, vendor , device 0h

    Fix this by calling x86_cpu_init_f() in arch_cpu_init().

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • To avoid confusion, let's rename the efi-x86 target to efi-x86_app.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This turns on the EFI framebuffer driver support so that a graphics
    console can be of additional help.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This adds a DM video driver for U-Boot as the EFI payload. The driver
    makes use of all necessary information from the passed EFI GOP info
    to create a linear framebuffer device, as if it were initialized by
    U-Boot itself.

    Signed-off-by: Bin Meng
    Reviewed-by: Anatolij Gustschin

    Bin Meng
     
  • If UEFI BIOS has the graphics output protocol (GOP), let's pass its
    information to U-Boot payload so that U-Boot can utilize it (eg:
    an EFI framebuffer driver).

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Now that we have generic EFI payload support, drop EFI-specific test
    logics in BayTrail Kconfig and codes, and all BayTrail boards too.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Now that we have generic EFI payload support for all x86 boards,
    drop the QEMU-specific one.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • It is possible to create a generic EFI payload for all x86 boards.
    The payload is configured to include as many generic drivers as
    possible. All stuff that touches low-level initialization are not
    allowed as such is the EFI BIOS's responsibility. Platform specific
    drivers (like gpio, spi, etc) are not included.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This adds arch_cpu_init() to the payload codes, in preparation for
    supporting a generic efi payload.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • At present the EFI application and payload support codes in the x86
    directory is distributed in a hybrid way. For example, the Kconfig
    options for both app and payload are in arch/x86/lib/efi/Kconfig,
    but the source codes in the same directory get built only for
    CONFIG_EFI_STUB.

    This refactors the codes by consolidating all the EFI support codes
    into arch/x86/cpu/efi, just like other x86 targets.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Since commit f3b5056c4e72 ("efi_loader: split README.efi into two
    separate documents"), the original README.efi was renamed to
    README.u-boot_on_efi, but x86 doc still refers to the old one.

    This updates the x86 doc to reference both README.u-boot_on_efi and
    README.uefi.

    Signed-off-by: Bin Meng

    Bin Meng
     
  • UEFI specifies the calling convention used in Microsoft compilers;
    first arguments of a function are passed in (%rcx, %rdx, %r8, %r9).

    All other compilers use System V ABI by default, passing first integer
    arguments of a function in (%rdi, %rsi, %rdx, %rcx, %r8, %r9).

    These ABI also specify different sets of registers that must be preserved
    across function calls (callee-saved).

    GCC allows using the Microsoft calling convention by adding the ms_abi
    attribute to a function declaration.

    Current EFI implementation in U-Boot specifies EFIAPI for efi_main()
    in the test apps but uses default calling convention in lib/efi.

    Save efi_main() arguments in the startup code on x86_64;
    use EFI calling convention for _relocate() on x86_64;
    consistently use EFI calling convention for efi_main() everywhere.

    Signed-off-by: Ivan Gorinov
    Reviewed-by: Alexander Graf
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng

    Ivan Gorinov
     
  • Fix warning when compiling cherryhill.dts with latest DTC:

    "Warning (avoid_unnecessary_addr_size): /pci/pch@1f,0: unnecessary
    #address-cells/#size-cells without "ranges" or child "reg" property"

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Tom Rini
     

16 Jun, 2018

6 commits