mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 15:40:29 +09:00
Pull request for UEFI sub-system for efi-2020-04-rc1-2
Bug fixes for the UEFI sub-system are provided: * imply VIDEO_ANSI for correct cursor positioning and colors * fix issues in the UEFI block device driver * add missing documentation -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAl4euFgACgkQxIHbvCwF GsT91A//dfwvY4UGUvb8Yl/fkMPFPyFRXyMNUWZoJflC44Q/8BouSnuAm7fH2l/H Ryb7ZEoczg6bmhHCv+4iheXfzES2qD9I18Rs1sC0p1AGiQWXGIYQQeqWORr6+rx/ iWJ6GzShaV/a9RdMXwWP/qLEFS8qYkpVGaNZxH4+a2y/oEUdkgGTuQkj43YwU/zS 83z5aSkqpklZF/mI7R/qAZaNFjthKlnMD/DRcyqIGUDhFNY+QyUE7elddQSS64gZ pFLudILZWzfE+/KWjyFRyqTAmVZOhsgMtEaIhfi/DUMzbGWo7j5jX5jvvBqP3ykG Hx7sN3zpWs5HQXZyXoURCif8YhfrYemlHnXbmbuN3T+kcyD8LWEjcD8FC0qwkjmU ov9wtEW5yOvBWYqChaT7c4D3BCTlsoA+Iw3j+xsRtGSF/ix/z1Bbvc97Bja5N/Bs SVE4LvjRmpTn2QuOyQXkPOYpfYdDvacb/+Q9OSo3QnPXgoQwRf5U2oHvSzilRZfY p/hK0VopvRJ/KFzZZ+ysTP0Gvcd73ZoR4MhVCOsNJeIw/x8Qlshok7GAT3G/jRK9 mDENC/IUu3LNhL835UwCSEULaRndz46OCyskMm70fmHfEDofh7NTQAcEKOw/q3Yf vTs+vPDKeBecMM5JDvsbsX2gm/9eJkWOqdwA/kaLOJVIj13LwYE= =11uD -----END PGP SIGNATURE----- Merge tag 'efi-2020-04-rc1-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi Pull request for UEFI sub-system for efi-2020-04-rc1-2 Bug fixes for the UEFI sub-system are provided: * imply VIDEO_ANSI for correct cursor positioning and colors * fix issues in the UEFI block device driver * add missing documentation
This commit is contained in:
commit
9d5d74c3cc
@ -131,6 +131,12 @@ Network protocols
|
||||
.. kernel-doc:: lib/efi_loader/efi_net.c
|
||||
:internal:
|
||||
|
||||
Random number generator protocol
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. kernel-doc:: lib/efi_loader/efi_rng.c
|
||||
:internal:
|
||||
|
||||
Text IO protocols
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
@ -112,7 +112,7 @@ static efi_status_t EFIAPI efi_uc_start(
|
||||
struct efi_driver_binding_extended_protocol *bp =
|
||||
(struct efi_driver_binding_extended_protocol *)this;
|
||||
|
||||
EFI_ENTRY("%p, %pUl, %ls", this, controller_handle,
|
||||
EFI_ENTRY("%p, %p, %ls", this, controller_handle,
|
||||
efi_dp_str(remaining_device_path));
|
||||
|
||||
/* Attach driver to controller */
|
||||
@ -197,9 +197,10 @@ static efi_status_t EFIAPI efi_uc_stop(
|
||||
efi_status_t ret;
|
||||
efi_uintn_t count;
|
||||
struct efi_open_protocol_info_entry *entry_buffer;
|
||||
efi_guid_t *guid_controller = NULL;
|
||||
struct efi_driver_binding_extended_protocol *bp =
|
||||
(struct efi_driver_binding_extended_protocol *)this;
|
||||
|
||||
EFI_ENTRY("%p, %pUl, %zu, %p", this, controller_handle,
|
||||
EFI_ENTRY("%p, %p, %zu, %p", this, controller_handle,
|
||||
number_of_children, child_handle_buffer);
|
||||
|
||||
/* Destroy provided child controllers */
|
||||
@ -217,7 +218,7 @@ static efi_status_t EFIAPI efi_uc_stop(
|
||||
|
||||
/* Destroy all children */
|
||||
ret = EFI_CALL(systab.boottime->open_protocol_information(
|
||||
controller_handle, guid_controller,
|
||||
controller_handle, bp->ops->protocol,
|
||||
&entry_buffer, &count));
|
||||
if (ret != EFI_SUCCESS)
|
||||
goto out;
|
||||
@ -237,7 +238,7 @@ static efi_status_t EFIAPI efi_uc_stop(
|
||||
|
||||
/* Detach driver from controller */
|
||||
ret = EFI_CALL(systab.boottime->close_protocol(
|
||||
controller_handle, guid_controller,
|
||||
controller_handle, bp->ops->protocol,
|
||||
this->driver_binding_handle, controller_handle));
|
||||
out:
|
||||
return EFI_EXIT(ret);
|
||||
|
@ -16,6 +16,7 @@ config EFI_LOADER
|
||||
select REGEX
|
||||
imply CFB_CONSOLE_ANSI
|
||||
imply USB_KEYBOARD_FN_KEYS
|
||||
imply VIDEO_ANSI
|
||||
help
|
||||
Select this option if you want to run UEFI applications (like GNU
|
||||
GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot
|
||||
|
@ -2933,10 +2933,10 @@ efi_status_t EFIAPI efi_start_image(efi_handle_t image_handle,
|
||||
ret = EFI_CALL(image_obj->entry(image_handle, &systab));
|
||||
|
||||
/*
|
||||
* Usually UEFI applications call Exit() instead of returning.
|
||||
* But because the world doesn't consist of ponies and unicorns,
|
||||
* we're happy to emulate that behavior on behalf of a payload
|
||||
* that forgot.
|
||||
* Control is returned from a started UEFI image either by calling
|
||||
* Exit() (where exit data can be provided) or by simply returning from
|
||||
* the entry point. In the latter case call Exit() on behalf of the
|
||||
* image.
|
||||
*/
|
||||
return EFI_CALL(systab.boottime->exit(image_handle, ret, 0, NULL));
|
||||
}
|
||||
|
@ -13,6 +13,17 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
const efi_guid_t efi_guid_rng_protocol = EFI_RNG_PROTOCOL_GUID;
|
||||
|
||||
/**
|
||||
* platform_get_rng_device() - retrieve random number generator
|
||||
*
|
||||
* This function retrieves the udevice implementing a hardware random
|
||||
* number generator.
|
||||
*
|
||||
* This function may be overridden if special initialization is needed.
|
||||
*
|
||||
* @dev: udevice
|
||||
* Return: status code
|
||||
*/
|
||||
__weak efi_status_t platform_get_rng_device(struct udevice **dev)
|
||||
{
|
||||
int ret;
|
||||
@ -29,6 +40,18 @@ __weak efi_status_t platform_get_rng_device(struct udevice **dev)
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* rng_getinfo() - get information about random number generation
|
||||
*
|
||||
* This function implement the GetInfo() service of the EFI random number
|
||||
* generator protocol. See the UEFI spec for details.
|
||||
*
|
||||
* @this: random number generator protocol instance
|
||||
* @rng_algorithm_list_size: number of random number generation algorithms
|
||||
* @rng_algorithm_list: descriptions of random number generation
|
||||
* algorithms
|
||||
* Return: status code
|
||||
*/
|
||||
static efi_status_t EFIAPI rng_getinfo(struct efi_rng_protocol *this,
|
||||
efi_uintn_t *rng_algorithm_list_size,
|
||||
efi_guid_t *rng_algorithm_list)
|
||||
@ -64,6 +87,18 @@ back:
|
||||
return EFI_EXIT(ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* rng_getrng() - get random value
|
||||
*
|
||||
* This function implement the GetRng() service of the EFI random number
|
||||
* generator protocol. See the UEFI spec for details.
|
||||
*
|
||||
* @this: random number generator protocol instance
|
||||
* @rng_algorithm: random number generation algorithm
|
||||
* @rng_value_length: number of random bytes to generate, buffer length
|
||||
* @rng_value: buffer to receive random bytes
|
||||
* Return: status code
|
||||
*/
|
||||
static efi_status_t EFIAPI getrng(struct efi_rng_protocol *this,
|
||||
efi_guid_t *rng_algorithm,
|
||||
efi_uintn_t rng_value_length,
|
||||
|
@ -3,6 +3,7 @@ config CMD_BOOTEFI_SELFTEST
|
||||
depends on CMD_BOOTEFI
|
||||
imply FAT
|
||||
imply FAT_WRITE
|
||||
imply CMD_POWEROFF if PSCI_RESET || SYSRESET_PSCI
|
||||
help
|
||||
This adds a UEFI test application to U-Boot that can be executed
|
||||
via the 'bootefi selftest' command. It provides extended tests of
|
||||
|
@ -257,9 +257,9 @@ static int teardown(void)
|
||||
disk_handle, &block_io_protocol_guid,
|
||||
&block_io);
|
||||
if (r != EFI_SUCCESS) {
|
||||
efi_st_todo(
|
||||
efi_st_error(
|
||||
"Failed to uninstall block I/O protocol\n");
|
||||
return EFI_ST_SUCCESS;
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user