| 09c5ab90 | 21-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement ConvertDeviceNodeToText
Move the logic for converting a node to text from efi_convert_device_path_to_text to convert_device_node_to_text.
Provide a wrapper function convert_de
efi_loader: implement ConvertDeviceNodeToText
Move the logic for converting a node to text from efi_convert_device_path_to_text to convert_device_node_to_text.
Provide a wrapper function convert_device_node_to_text_ext.
As we use only shallow device paths so we can call directly call efi_device_node_to_text from efi_device_path_to_text.
Add output for MAC addresses.
Add output for not yet supported types/subtypes.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| c6e3c3e6 | 21-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_memory: return MapKey
efi_get_memory_map should set a defined value for map_key.
We later can introduce the test against this value in efi_exit_boot_services as required by the UEFI standard.
efi_memory: return MapKey
efi_get_memory_map should set a defined value for map_key.
We later can introduce the test against this value in efi_exit_boot_services as required by the UEFI standard.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 0ecba5db | 21-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_memory: do parameter checks first
The parameter checks should be done first.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de> |
| ca9193d2 | 21-Jul-2017 |
Rob Clark <robdclark@gmail.com> |
efi_loader: gop: fixes for CONFIG_DM_VIDEO without CONFIG_LCD
Make EFI GOP support work with DM_VIDEO but without legacy LCD.
Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander
efi_loader: gop: fixes for CONFIG_DM_VIDEO without CONFIG_LCD
Make EFI GOP support work with DM_VIDEO but without legacy LCD.
Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 3e094c59 | 24-Jul-2017 |
Rob Clark <robdclark@gmail.com> |
efi_loader: move guidcmp to header
Want to re-use this for file protocol, which I'm working on.
Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> |
| 8787b02e | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: correctly implement 100ns conversion
In efi_set_timer we receive the trigger time in intervals of 100 ns. We should convert it to intervals of 1000 ns by 64bit division.
The patch suppl
efi_loader: correctly implement 100ns conversion
In efi_set_timer we receive the trigger time in intervals of 100 ns. We should convert it to intervals of 1000 ns by 64bit division.
The patch supplies function efi_div10 that uses multiplication to implement the missing 64 bit division.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 91be9a77 | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_console: set up events
Set up a timer event and the WaitForKey event. In the notify function of the timer event check for console input and signal the WaitForKey event accordingly.
Signed-off-b
efi_console: set up events
Set up a timer event and the WaitForKey event. In the notify function of the timer event check for console input and signal the WaitForKey event accordingly.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| bfc72462 | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_set_timer
efi_set_timer is refactored to make the function callable internally. Wrapper function efi_set_timer_ext is provided for EFI applications.
Signed-off-by: Heinrich
efi_loader: refactor efi_set_timer
efi_set_timer is refactored to make the function callable internally. Wrapper function efi_set_timer_ext is provided for EFI applications.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 49deb455 | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_create_event
efi_create_event is refactored to make it possible to call it internally. For EFI applications wrapper function efi_create_event_ext is created.
Signed-off-by:
efi_loader: refactor efi_create_event
efi_create_event is refactored to make it possible to call it internally. For EFI applications wrapper function efi_create_event_ext is created.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 503f2695 | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: correct size for tpl level
The UEFI standard defines the type for the tpl level as EFI_TPL alias UINTN.
UINTN is an integer is defined as an unsigned integer of native width. So we can
efi_loader: correct size for tpl level
The UEFI standard defines the type for the tpl level as EFI_TPL alias UINTN.
UINTN is an integer is defined as an unsigned integer of native width. So we can use size_t for the definition.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| c6841592 | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement multiple event support
Up to now the boot time supported only a single event. This patch now allows four events.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed
efi_loader: implement multiple event support
Up to now the boot time supported only a single event. This patch now allows four events.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 2fd945fe | 18-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: use struct efi_event * instead of void *
In our implementation the internal structure of events is known. So use the known type instead of void.
Signed-off-by: Heinrich Schuchardt <xypr
efi_loader: use struct efi_event * instead of void *
In our implementation the internal structure of events is known. So use the known type instead of void.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 71275a3e | 14-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_memory: avoid NULL dereference in efi_free_pool
If efi_free_pool is called with argument NULL an illegal memory access occurs.
So let's check the parameter on entry.
Signed-off-by: Heinrich Sc
efi_memory: avoid NULL dereference in efi_free_pool
If efi_free_pool is called with argument NULL an illegal memory access occurs.
So let's check the parameter on entry.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 70bfcdc6 | 20-Jun-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: disk: iterate only over valid block devices
The efi_loader currently stops iterating over the available block devices stopping at the first device that fails. This may imply that no bloc
efi_loader: disk: iterate only over valid block devices
The efi_loader currently stops iterating over the available block devices stopping at the first device that fails. This may imply that no block device is found.
With the patch efi_loader only iterates over valid devices.
It is based on patch 06d592bf52f6 (dm: core: Add uclass_first/next_device_check()) which is currently in u-boot-dm.git.
For testing I used an odroid-c2 with a dts including &sd_emmc_a { status = "okay"; }; This device does not exist on the board and cannot be initialized.
Without the patch:
=> bootefi hello ## Starting EFI application at 01000000 ... WARNING: Invalid device tree, expect boot to fail mmc_init: -95, time 1806 Found 0 disks Hello, world! ## Application terminated, r = 0
With the patch:
=> bootefi hello ## Starting EFI application at 01000000 ... WARNING: Invalid device tree, expect boot to fail mmc_init: -95, time 1806 Scanning disk mmc@70000.blk... Scanning disk mmc@72000.blk... Card did not respond to voltage select! mmc_init: -95, time 9 Scanning disk mmc@74000.blk... Found 3 disks Hello, world! ## Application terminated, r = 0
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| cc5b7081 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
ConvertPathToText is implemented for * type 4 - media device path * subtype 4 - file path
This is the kind of device path we hand out for b
efi_loader: implement EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
ConvertPathToText is implemented for * type 4 - media device path * subtype 4 - file path
This is the kind of device path we hand out for block devices.
All other cases may be implemented later.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> [agraf: fix whitespace] Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 88adae5e | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: reimplement efi_locate_protocol
The UEFI specification requires that LocateProtol finds the first handle supporting the protocol and to return a pointer to its interface.
So we have to
efi_loader: reimplement efi_locate_protocol
The UEFI specification requires that LocateProtol finds the first handle supporting the protocol and to return a pointer to its interface.
So we have to assign the protocols to an efi_object and not use any separate storage.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| c2e703f9 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement LocateHandleBuffer
UEFI boot service LocateHandleBuffer is implemented by calling efi_allocate_handle and efi_locate_handle.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gm
efi_loader: implement LocateHandleBuffer
UEFI boot service LocateHandleBuffer is implemented by calling efi_allocate_handle and efi_locate_handle.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 26329584 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_locate_handle
To implement LocateHandleBuffer we need to call efi_locate_handle internally without running through EFI_EXIT.
So put EFI_ENTRY and EFI_EXIT into a new wrappe
efi_loader: refactor efi_locate_handle
To implement LocateHandleBuffer we need to call efi_locate_handle internally without running through EFI_EXIT.
So put EFI_ENTRY and EFI_EXIT into a new wrapper function efi_locate_handle_ext.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 58b83586 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement InstallMultipleProtocolInterfaces
Implement InstallMultipleProtocolInterfaces in function efi_install_multiple_protocol_interfaces by repeatedly calling efi_install_protocol_in
efi_loader: implement InstallMultipleProtocolInterfaces
Implement InstallMultipleProtocolInterfaces in function efi_install_multiple_protocol_interfaces by repeatedly calling efi_install_protocol_interface.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 3d8e1456 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_uninstall_protocol_interface
For the implementation of UninstallMultipleProtocolInterfaces we need to call efi_uninstall_protocol_interface. In internal calls we should not
efi_loader: refactor efi_uninstall_protocol_interface
For the implementation of UninstallMultipleProtocolInterfaces we need to call efi_uninstall_protocol_interface. In internal calls we should not pass through EFI_EXIT.
The patch introduces a wrapper function efi_uninstall_protocol_interface_ext.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 8bee5a3c | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_install_protocol_interface
For the implementation of InstallMultipleProtocolInterfaces we need to call efi_install_protocol_interface. In internal calls we should not pass t
efi_loader: refactor efi_install_protocol_interface
For the implementation of InstallMultipleProtocolInterfaces we need to call efi_install_protocol_interface. In internal calls we should not pass through EFI_EXIT.
The patch introduces a wrapper function efi_install_protocol_interface_ext.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 4b6ed0d7 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement UninstallProtocolInterface
Without the patch efi_uninstall_protocol_interface always returns an error.
With the patch protocols without interface can be uninstalled.
Signed-o
efi_loader: implement UninstallProtocolInterface
Without the patch efi_uninstall_protocol_interface always returns an error.
With the patch protocols without interface can be uninstalled.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| e0549f8a | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: implement InstallProtocolInterface
efi_install_protocol_interface up to now only returned an error code.
The patch implements the UEFI specification for InstallProtocolInterface with th
efi_loader: implement InstallProtocolInterface
efi_install_protocol_interface up to now only returned an error code.
The patch implements the UEFI specification for InstallProtocolInterface with the exception that it will not create new handles.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| 69baec67 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: efi_open_protocol: parameter checks
Add all parameter checks for function efi_open_protocol that do not depend on a locking table.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de
efi_loader: efi_open_protocol: parameter checks
Add all parameter checks for function efi_open_protocol that do not depend on a locking table.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|
| b5349f74 | 11-Jul-2017 |
xypron.glpk@gmx.de <xypron.glpk@gmx.de> |
efi_loader: refactor efi_open_protocol
efi_open_protocol was implemented to call a protocol specific open function to retrieve the protocol interface.
The UEFI specification does not know of such a
efi_loader: refactor efi_open_protocol
efi_open_protocol was implemented to call a protocol specific open function to retrieve the protocol interface.
The UEFI specification does not know of such a function.
It is not possible to implement InstallProtocolInterface with the current design.
With the patch the protocol interface itself is stored in the list of installed protocols of an efi_object instead of an open function.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> [agraf: fix efi gop support] Signed-off-by: Alexander Graf <agraf@suse.de>
show more ...
|