mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
Pull request for UEFI system for v2019.04-rc5-2
This patch series contains a bug fix for a double free in a UEFI unit test. The other patches are documentation only (except for the definition of two additional constants). -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAlydMVEACgkQxIHbvCwF GsQ0KA/+JU1s0Mhu9fWb+LR/sDz7hoLgbPgYQA71+ngwy0ihzIKfrOx7BBfBzzC6 yaFJznaWGZBskvlEpD7n+6g+RPomcsvla3KUEwIGjstBYkDJ1AHyjNtt3fbEEyqo Ub90hOvvB46BKZ4uqkM+qA4GpctONgAeEUVtmYvx1FXAlzXKhltZdt67V3ZzV0ir JdQ3UtuNibSTmvTxLRRkCUk6xCBF912NXkwPY5J6tnnRNJmmqE9urdmsmmycNByK zTmCG3z80xBE5GoEB9mm/89XKreqCIZ3w8ANk/u6WIGLaa4tjR47k5MxXju2PyVQ sLg2j5uyfr9CKeq0HdtD1PLXc4dzp9JX4xuJKNZ+J+kzqid8Foh4Av/D44z3/xAW dJ7BqPo+JjJEitbjtqVcAQCFS2a+Sk94TrPmKhiNbMbGo/D1tqC1yMdwAFQebH4l 46UJCq4lOw1QwjaESpozWKNAZe41QvZn2vLvOxIEiZeIbGHwYVFYoqXaJIf5YEx9 D9YLBxx27SRAQFB9bqnmHh6a44c+E8MKmbTbQsLY9tX8tCNUEXpSpod88Yaaobny pRtBXskdmMyvViivrcawdWmHk95OIQscV61DGJAGD26dYkPli6YKx0At3kBhu0iT TZ0SKmWAloXopI8mqL7xlMCBsgl33oNfPOjzGsxoA5ka2m6HapU= =UiND -----END PGP SIGNATURE----- Merge tag 'efi-2019-04-rc5-2' of git://git.denx.de/u-boot-efi Pull request for UEFI system for v2019.04-rc5-2 This patch series contains a bug fix for a double free in a UEFI unit test. The other patches are documentation only (except for the definition of two additional constants).
This commit is contained in:
commit
b357ae5ed6
5 changed files with 27 additions and 11 deletions
|
@ -454,7 +454,7 @@ EFI PAYLOAD
|
||||||
M: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
M: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||||
R: Alexander Graf <agraf@csgraf.de>
|
R: Alexander Graf <agraf@csgraf.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://github.com/agraf/u-boot.git
|
T: git git://git.denx.de/u-boot-efi.git
|
||||||
F: doc/README.uefi
|
F: doc/README.uefi
|
||||||
F: doc/README.iscsi
|
F: doc/README.iscsi
|
||||||
F: Documentation/efi.rst
|
F: Documentation/efi.rst
|
||||||
|
|
|
@ -12,6 +12,15 @@ the interaction of drivers and applications with the firmware. The API comprises
|
||||||
access to block storage, network, and console to name a few. The Linux kernel
|
access to block storage, network, and console to name a few. The Linux kernel
|
||||||
and boot loaders like GRUB or the FreeBSD loader can be executed.
|
and boot loaders like GRUB or the FreeBSD loader can be executed.
|
||||||
|
|
||||||
|
## Development target
|
||||||
|
|
||||||
|
The implementation of UEFI in U-Boot strives to reach the minimum requirements
|
||||||
|
described in "Server Base Boot Requirements System Software on ARM Platforms -
|
||||||
|
Version 1.1" [4].
|
||||||
|
|
||||||
|
A full blown UEFI implementation would contradict the U-Boot design principle
|
||||||
|
"keep it small".
|
||||||
|
|
||||||
## Building for UEFI
|
## Building for UEFI
|
||||||
|
|
||||||
The UEFI standard supports only little-endian systems. The UEFI support can be
|
The UEFI standard supports only little-endian systems. The UEFI support can be
|
||||||
|
@ -299,7 +308,7 @@ This driver is only available if U-Boot is configured with
|
||||||
CONFIG_BLK=y
|
CONFIG_BLK=y
|
||||||
CONFIG_PARTITIONS=y
|
CONFIG_PARTITIONS=y
|
||||||
|
|
||||||
## TODOs as of U-Boot 2018.07
|
## TODOs as of U-Boot 2019.04
|
||||||
|
|
||||||
* unimplemented or incompletely implemented boot services
|
* unimplemented or incompletely implemented boot services
|
||||||
* Exit - call unload function, unload applications only
|
* Exit - call unload function, unload applications only
|
||||||
|
@ -308,16 +317,13 @@ This driver is only available if U-Boot is configured with
|
||||||
|
|
||||||
* unimplemented or incompletely implemented runtime services
|
* unimplemented or incompletely implemented runtime services
|
||||||
* SetVariable() ignores attribute EFI_VARIABLE_APPEND_WRITE
|
* SetVariable() ignores attribute EFI_VARIABLE_APPEND_WRITE
|
||||||
* GetNextVariableName is not implemented
|
|
||||||
* QueryVariableInfo is not implemented
|
* QueryVariableInfo is not implemented
|
||||||
|
|
||||||
* unimplemented events
|
* unimplemented events
|
||||||
* EVT_RUNTIME
|
* EVT_RUNTIME
|
||||||
* EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE
|
* EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE
|
||||||
* event groups
|
|
||||||
|
|
||||||
* data model
|
* data model
|
||||||
* manage events in a linked list
|
|
||||||
* manage configuration tables in a linked list
|
* manage configuration tables in a linked list
|
||||||
|
|
||||||
* UEFI drivers
|
* UEFI drivers
|
||||||
|
@ -329,9 +335,14 @@ This driver is only available if U-Boot is configured with
|
||||||
* persistence
|
* persistence
|
||||||
* runtime support
|
* runtime support
|
||||||
|
|
||||||
|
* incompletely implemented protocols
|
||||||
|
* support version 0x00020000 of the EFI file protocol
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
* [1](http://uefi.org/specifications)
|
* [1](http://uefi.org/specifications)
|
||||||
http://uefi.org/specifications - UEFI specifications
|
http://uefi.org/specifications - UEFI specifications
|
||||||
* [2](./driver-model/README.txt) doc/driver-model/README.txt - Driver model
|
* [2](./driver-model/README.txt) doc/driver-model/README.txt - Driver model
|
||||||
* [3](./README.iscsi) doc/README.iscsi - iSCSI booting with U-Boot and iPXE
|
* [3](./README.iscsi) doc/README.iscsi - iSCSI booting with U-Boot and iPXE
|
||||||
|
* [4](https://developer.arm.com/docs/den0044/latest/server-base-boot-requirements-system-software-on-arm-platforms-version-11)
|
||||||
|
Server Base Boot Requirements System Software on ARM Platforms - Version 1.1
|
||||||
|
|
|
@ -1322,7 +1322,9 @@ struct efi_pxe {
|
||||||
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
|
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
|
||||||
EFI_GUID(0x964e5b22, 0x6459, 0x11d2, \
|
EFI_GUID(0x964e5b22, 0x6459, 0x11d2, \
|
||||||
0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
|
0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
|
||||||
#define EFI_FILE_PROTOCOL_REVISION 0x00010000
|
#define EFI_FILE_PROTOCOL_REVISION 0x00010000
|
||||||
|
#define EFI_FILE_PROTOCOL_REVISION2 0x00020000
|
||||||
|
#define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
|
||||||
|
|
||||||
struct efi_file_handle {
|
struct efi_file_handle {
|
||||||
u64 rev;
|
u64 rev;
|
||||||
|
@ -1346,6 +1348,10 @@ struct efi_file_handle {
|
||||||
const efi_guid_t *info_type, efi_uintn_t buffer_size,
|
const efi_guid_t *info_type, efi_uintn_t buffer_size,
|
||||||
void *buffer);
|
void *buffer);
|
||||||
efi_status_t (EFIAPI *flush)(struct efi_file_handle *file);
|
efi_status_t (EFIAPI *flush)(struct efi_file_handle *file);
|
||||||
|
/*
|
||||||
|
* TODO: We currently only support EFI file protocol revision 0x00010000
|
||||||
|
* while UEFI specs 2.4 - 2.7 prescribe revision 0x00020000.
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000
|
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000
|
||||||
|
|
|
@ -628,6 +628,10 @@ static efi_status_t EFIAPI efi_file_flush(struct efi_file_handle *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct efi_file_handle efi_file_handle_protocol = {
|
static const struct efi_file_handle efi_file_handle_protocol = {
|
||||||
|
/*
|
||||||
|
* TODO: We currently only support EFI file protocol revision 0x00010000
|
||||||
|
* while UEFI specs 2.4 - 2.7 prescribe revision 0x00020000.
|
||||||
|
*/
|
||||||
.rev = EFI_FILE_PROTOCOL_REVISION,
|
.rev = EFI_FILE_PROTOCOL_REVISION,
|
||||||
.open = efi_file_open,
|
.open = efi_file_open,
|
||||||
.close = efi_file_close,
|
.close = efi_file_close,
|
||||||
|
|
|
@ -256,11 +256,6 @@ static int execute(void)
|
||||||
efi_st_error("GetNextDevicePathInstance did not signal end\n");
|
efi_st_error("GetNextDevicePathInstance did not signal end\n");
|
||||||
return EFI_ST_FAILURE;
|
return EFI_ST_FAILURE;
|
||||||
}
|
}
|
||||||
ret = boottime->free_pool(dp2);
|
|
||||||
if (ret != EFI_ST_SUCCESS) {
|
|
||||||
efi_st_error("FreePool failed\n");
|
|
||||||
return EFI_ST_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Clean up */
|
/* Clean up */
|
||||||
ret = boottime->free_pool(dp2);
|
ret = boottime->free_pool(dp2);
|
||||||
|
|
Loading…
Add table
Reference in a new issue