06 Oct, 2019
1 commit
-
This allows our EFI API to create a device path node for NVMe
devices. It adds the necessary device path struct, uses the
nvme namespace accessor to retrieve the id and eui64, and also
provides support for the device path text protocol.Signed-off-by: Patrick Wildt
Tested-by: Heinrich Schuchardt
Reviewed-by: Heinrich Schuchardt
09 Sep, 2019
2 commits
-
We cannot determine the volume name in U-Boot. Instead of providing a dummy
volume name in case of EFI_FILE_SYSTEM_INFO and EFI_UNSUPPORTED in case of
EFI_FILE_SYSTEM_VOLUME_LABEL consistently return an empty string.Signed-off-by: Heinrich Schuchardt
-
The UEFI specification requires to implement version 2 of the
EFI_FILE_PROTOCOL. Provide the missing functions as stubs.Signed-off-by: Heinrich Schuchardt
06 Sep, 2019
2 commits
-
Correct the name of the partition size component in struct
efi_device_path_cdrom_path.Render entry, start, and size when converting a CD-ROM device path node to
text.Signed-off-by: Heinrich Schuchardt
-
GetStatus() must clear the interrupt status.
Transmit() should set the TX interrupt.
Receive() should clear the RX interrupt.
Initialize() and Start() should clear the interrupt status.Signed-off-by: Heinrich Schuchardt
16 Aug, 2019
1 commit
-
U-Boot implements the EFI_PXE_BASE_CODE_PROTOCOL because GRUB uses the mode
information for booting via PXE. All function pointers in the protocol were
NULL up to now which will cause immediate crashes when the services of the
protocol are called.Create function stubs for all services of the protocol returning
EFI_UNSUPPORTED.Signed-off-by: Heinrich Schuchardt
31 Jul, 2019
1 commit
-
Use efi_uintn_t where the UEFI spec uses UINTN. Use efi_uintn_t also for
the result of the division of two efi_uintn_t.Signed-off-by: Heinrich Schuchardt
07 Jul, 2019
1 commit
-
We are implementing UEFI variable RuntimeServicesSupported and set the
unimplemented runtime functions return EFI_UNSUPPORTED as described in UEFI
specification 2.8. So let's also advertise this specification version in
our system table.Signed-off-by: Heinrich Schuchardt
Reviewed-by: Alexander Graf
29 Jun, 2019
1 commit
-
ConvertPointer() must be EFIAPI. The first parameter should be of type
efi_uint_t. Use the same parameter name as the UEFI specification.Signed-off-by: Heinrich Schuchardt
21 Jun, 2019
1 commit
-
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset() is a function and not a void *
pointer.Signed-off-by: Heinrich Schuchardt
15 Jun, 2019
1 commit
-
This variable is defined in UEFI specification 2.8, section 8.1.
Its value should be updated whenever we add any usable runtime services
function.Currently we only support SetVirtualAddress() for all systems and
ResetSystem() for some.Signed-off-by: AKASHI Takahiro
Reviewed-by: Heinrich Schuchardt
19 May, 2019
2 commits
-
KeyToggleState is a pointer according to UEFI spec 2.8.
Signed-off-by: Heinrich Schuchardt
-
In EFI 1.10 a version of the Unicode collation protocol using ISO 639-2
language codes existed. This protocol is not part of the UEFI specification
any longer. Unfortunately it is required to run the UEFI Self Certification
Test (SCT) II, version 2.6, 2017. So we implement it here for the sole
purpose of running the SCT. It can be removed once a compliant SCT is
available.The configuration option defaults to no.
Signed-off-by: Rob Clark
Most of Rob's original patch is already merged. Only the deprecated
protocol is missing. Rebase it and make it configurable.Signed-off-by: Heinrich Schuchardt
08 May, 2019
2 commits
-
Consistently use efi_uintn_t as type of memory keys.
Signed-off-by: Heinrich Schuchardt
Reviewed-by: Alexander Graf -
Implement the UnloadImage() boot service
Signed-off-by: Heinrich Schuchardt
23 Apr, 2019
1 commit
-
We should consistently use the same name for protocol GUIDs as defined in
the UEFI specification. Not adhering to this rule has led to duplicate
definitions for the EFI_LOADED_IMAGE_PROTOCOL_GUID.Adjust misnamed protocol GUIDs.
Adjust the text for the graphics output protocol in the output of the
`efidebug dh` command.Signed-off-by: Heinrich Schuchardt
07 Apr, 2019
1 commit
-
To meet UEFI spec v2.7a section 9.2, we should add
EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL to image handle,
instead of EFI_DEVICE_PATH_PROTOCOL.Signed-off-by: AKASHI Takahiro
Reviewed-by: Heinrich Schuchardt
28 Mar, 2019
1 commit
-
We currently only support EFI_FILE_PROTOCOL_REVISION while
UEFI specs 2.4 - 2.7 prescribe EFI_FILE_PROTOCOL_REVISION2.
Add a todo.Add missing constants for the EFI file protocol revision.
Signed-off-by: Heinrich Schuchardt
25 Feb, 2019
1 commit
-
See UEFI specification v2.7a, section 3.1.3, "Load Option Processing."
Signed-off-by: AKASHI Takahiro
Reviewed-by: Heinrich Schuchardt
13 Feb, 2019
10 commits
-
This patch is a place holder for HII configuration routing protocol and
HII configuration access protocol.Signed-off-by: AKASHI Takahiro
Signed-off-by: Alexander Graf -
Allow for handling keyboard layout package in HII database protocol.
A package can be added or deleted in HII database protocol, but
we don't set 'current' keyboard layout as there is no driver that
requests a keyboard layout.Signed-off-by: AKASHI Takahiro
Signed-off-by: Alexander Graf -
Allow for handling GUID package in HII database protocol.
Signed-off-by: AKASHI Takahiro
Signed-off-by: Alexander Graf -
This patch provides enough implementation of the following protocols to
run EDKII's Shell.efi and UEFI SCT:* EfiHiiDatabaseProtocol
* EfiHiiStringProtocolNot implemented are:
* ExportPackageLists()
* RegisterPackageNotify()/UnregisterPackageNotify()
* SetKeyboardLayout() (i.e. *current* keyboard layout)HII database protocol in this patch series can handle only:
* GUID package
* string package
* keyboard layout package
(The other packages, except Device path package, will be necessary
for interactive and graphical UI.)Signed-off-by: Leif Lindholm
Signed-off-by: Rob Clark
Signed-off-by: AKASHI Takahiro
Signed-off-by: Alexander Graf -
Remove duplicate definition o EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
UTF-16 strings in our code should all be u16 *. Fix an inconsistency for
file names which may lead to a warning for printf("%ls", ).Reviewed-by: Simon Glass
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
The SetVariable() runtime service does not change the data passed to it.
So mark the parameter as constant.Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
The runtime variable services never change GUIDs. So we should declare
the GUID parameters as constant.Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
We use u16* for Unicode strings and efi_uintn_t for UINTN. Correct the
signature of efi_exit() and efi_start_image().Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
Commit 393fccdf6c73 ("efi_loader: efi_guid_t must be 64-bit aligned")
has changed the alignment of efi_guid_t. This changed the size of
struct efi_configuration_table on 32-bit systems form 20 to 24 bytes. As
an array of this type is pointed to by the system table this breaks
compatibility with existing versions of GRUB and Linux. Let's get back the
original size by using the attribute __packed.Fixes: 393fccdf6c73 ("efi_loader: efi_guid_t must be 64-bit aligned")
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
03 Dec, 2018
3 commits
-
We should be consistent in the types that we use to store Unicode strings.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
See UEFI specification v2.7, section 8.5.3.
Signed-off-by: AKASHI Takahiro
Signed-off-by: Alexander Graf -
All our handles point to a struct efi_object. So let's define the
efi_handle_t accordingly. This helps us to discover coding errors much
more easily. This becomes evident by the corrections to the usage of
handles in this patch.Rename variable image_handle to image_obj where applicable.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
16 Oct, 2018
1 commit
-
The UEFI spec requires that file positions are passed as u64 in
GetPosition() and SetPosition().Check if the file handle points to a directory in GetPosition().
Provide a unit test for GetPosition() and SetPosition().
Fix Coverity warning CID 184079 (CONSTANT_EXPRESSION_RESULT).
Add comments.
Fixes: b6dd57773719 ("efi_loader: use correct types in EFI_FILE_PROTOCOL")
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
24 Sep, 2018
5 commits
-
Create the handle of loaded images and the EFI_LOADED_IMAGE_PROTOCOL
inside efi_setup_loaded_image(). Do not use local variables.Currently we expect the loaded image handle to point to the loaded image
protocol. Additionally we have appended private fields to the protocol.With the patch the handle points to a loaded image object and the private
fields are added here. This matches how we handle the net and the gop
object.Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
This patch implements the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.
The implementation of notification functions is postponed to a later
patch.Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
Add the missing SPDX-License-Identifier based on Linux kernel commit
b24413180f56 ("License cleanup: add SPDX GPL-2.0 license identifier to
files with no license").Correct formatting errors.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
%s/efi_simple_input_interface/efi_simple_text_input_protocol/
We should be consistent in the naming of the EFI protocol interface
structures. The protocol is called EFI_SIMPLE_TEXT_INPUT_PROTOCOL.%s/ExtendedVerification/extended_verification/
Use consistent naming of function parameters. Do not use CamelCase.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
The patch implements the EFI_UNICODE_COLLATION_PROTOCOL.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
25 Jul, 2018
2 commits
-
Use const for the buffer. We are not changing the buffer.
Use efi_uintn_t where prescribed by the UEFI spec.
Prefer u32 over uint32_t.Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
Provide a firmware revision in the system table using the Makefile
variables VERSION and PATCHLEVEL, e.g. 0x20180700 for v2018.07.Correct the type of the firmware vendor. It is a u16* pointer.
Signed-off-by: Heinrich Schuchardt
Reviewed-by: Bin Meng
Signed-off-by: Alexander Graf