06 Aug, 2015
1 commit
-
Remove DEBUG in drivers/pci/pci_compat.c.
Signed-off-by: Bin Meng
Acked-by: Simon Glass
05 Aug, 2015
39 commits
-
Add some documentation on the EFI implementation in U-Boot.
Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
We cannot use this driver when running from EFI as we have no direct hardware
access. In fact coreboot uses a different driver which uses tables provided
by coreboot. So far it does not seem possible to use a normal video driver
when booting from EFI.Signed-off-by: Simon Glass
Acked-by: Anatolij Gustschin
Reviewed-by: Bin Meng -
Disable a few things which interfere with the EFI init. This allows QEMU to
to boot into EFI, load a U-Boot payload then boot to the U-Boot prompt.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
Disable a few things which interfere with the EFI init. This allows the
Minnowboard MAX to boot into EFI, load a U-Boot payload then boot to the
U-Boot prompt.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
When U-Boot is running from EFI some of the x86 init is replaced with
EFI-specific init. For example, since DRAM has already been set up, we only
need to find it, not init it. Add these functions so that boards can easily
allow booting from EFI if required.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
When U-Boot runs as an EFI payload it needs to avoid setting up the CPU
again. Also U-Boot currently does not handle interrupts for many devices, so
run with interrupts disabled.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
The EFI memory map is passed from the stub to U-Boot in a table. Add a
command to display it in a vaguely readable fashion.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested on QEMU
Tested-by: Bin Meng -
The EFI stub can pass a table to U-Boot with information about the memory map
Potentially other things will follow. Add a way to access this table.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
The EFI stub provides information to U-Boot in a table. This includes the
memory map which is needed to decide where to relocate U-Boot. Collect this
information in the early init code and store it in global_data.Fix up the BIST code at the same time since we don't have it when booting
from EFI and can assume it is 0.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Most EFI implementations use 64-bit. Add a way to build U-Boot as a 64-bit
EFI payload. The payload unpacks a (32-bit) U-Boot and starts it. This can
be enabled for x86 boards at present.Signed-off-by: Simon Glass
Improvements to how the payload is built:
Signed-off-by: Bin Meng
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
The procedure to drop from 64-bit mode to 32-bit is a bit messy. Add a
function to take care of it. It requires identity-mapped pages and that
the calling code is running below 4GB.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Rather than add these as open-coded values, create an enum with the commonly
used flags.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Add support for building a 32/64-bit EFI stub for x86. This involves
building the startup and relocation code for either i386 or x86_64.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
It is useful to be able to load U-Boot onto a board even if is it already
running EFI. This can allow access to the U-Boot command interface, flexible
booting options and easier development.The easiest way to do this is to build U-Boot as a binary blob and have an
EFI stub copy it into RAM. Add support for this feature, targeting 32-bit
initially.Also add a way to detect when U-Boot has been loaded via a stub. This goes
in common.h since it needs to be widely available so that we avoid redoing
initialisation that should be skipped.Signed-off-by: Simon Glass
Improvements to how the payload is built:
Signed-off-by: Bin Meng
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
Add a linker script and relocation code for building 64-bit EFI
applications. This can be used for the EFI stub.Signed-off-by: Simon Glass
Improvements to how the payload is built:
Signed-off-by: Bin Meng
Reviewed-by: Bin Meng -
Add configuration and Kconfig changes for this board.
Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
This code currently requires CONFIG_SYS_TEXT_BASE but this should be
unnecessary. As a first step, remove the build-time limitation and report an
error instead.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
This contains just enough to bring up the serial UART.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
Add support for the efi-x86 board, which supports running U-Boot as an
EFI 32-bit application.Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
Add the required x86 glue code. This includes the initial start-up,
relocation and jumping to efi_main(). We also need to avoid fiddling with
interrupts.Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Bring in this file from Linux 4.1. It supports relocation features specific
to x86.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
When running as an EFI application we must skip relocation. Add support for
this in the x86 relocation code.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Add support for building U-Boot as an EFI application with a .efi suffix.
This can be loaded by EFI provided that EFI has the same bit width (32-
or 64-bit) as U-Boot. This unfortunate limitation is imposed by EFI.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Adjust the toolchain flags to build U-Boot as a relocatable shared library,
as required by EFI.Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Bin Meng -
When U-Boot runs as an EFI application is does not have a definition of
CONFIG_SYS_TEXT_BASE. U-Boot is a relocatable application and the relocation
is done by EFI. U-Boot can be loaded at any address.Ensure that this CONFIG option is not set in this case.
Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Add a serial driver which makes use of EFI's console in/out service.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested on Intel Crown Bay and QEMU
Tested-by: Bin Meng -
When running U-Boot as an EFI application we cannot relocate since we do not
have relocation information. U-Boot has already been relocated to a suitable
address.Add a global_data flag to control skipping relocation.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
The steps required to boot a Linux distribution from U-Boot on x86 are not
very complicated, but it is a good idea to have these written down in an
accessible place.Document how to examine the boot media from U-Boot, how to load a kernel,
load a ramdisk, set the kernel boot arguments and start the kernel. With
these instructions Ubuntu boots mostly normally on Minnowmax.Note that the TSC timer does not operate correctly and gives warnings in
the boot log. I expect that ACPI support will solve this.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
These are now in the device tree so we don't need to use the CONFIG options.
Drop them.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Fix a small typo in this binding file.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
This is provided in Kconfig so we don't need it here.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Move this config option to Kconfig and tidy up.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Drop these from the header file and use Kconfig instead.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
At present this function does not specify its return value. Fix it.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
At present the PCI output displays 'Mem' when it allocates memory for a PCI
device, whether it is prefetchable or not. There is a distinction since the
memory comes from separate pools. Use 'Prf' instead of 'Mem' when allocating
prefetchable memory.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
Rather than using 0xff in the code, add a constant.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
With EFI the start address of U-Boot is specified differently. We could
consider just setting GD_FLG_RELOC and then setting up reloc_off. But that
flag has other implementations and we are not able to use U-Boot relocation
which this flag implies.Instead, just add a special case for EFI.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
When U-Boot runs as an EFI application is does not have a definition of
CONFIG_SYS_TEXT_BASE. U-Boot is a relocatable application and the relocation
is done by EFI. U-Boot can be loaded at any address.This is similar to how sandbox works. Adjust the early board init to deal
with this.Signed-off-by: Ben Stoltz
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng -
When running as an EFI application, U-Boot must request memory from EFI,
and provide access to the boot services U-Boot needs.Add library code to perform these tasks. This includes efi_main() which is
the entry point from EFI. U-Boot is built as a shared library.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng