Pull request for efi-2021-04-rc3-2
Bug fixes: * debug build for mkeficapsule * limit output length for VenHw, VenMedia * ACPI tables must be in EfiACPIReclaimMemory -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmA5FmUACgkQxIHbvCwF GsRhkQ/+MqWhkKwTXAiLZoZe6oNVn0WQ9R86BPrEL55shl7eK7qz8Y+dsC37y71Q XdAvwo9tEOseta57xwBRQh4GQ1LXcnZLRNw9zrcSRgBGa+W0hDTKyZvyKmEpzYjd BdOWS1e53rnxGqkYlX+qGMuiCJCHsDB1VPd/BMtwphBD0DK3ss9paLlMkP7JsfKk e2ujxE3rp1WWQ8BripBffy2Fn9dV+xUM8WDWQyJMzoUKrpHbTqD01clc22+4sPXz iajPSxLFqNMrFHci4hMg/XBnJR6JENNjpjN98PizRA0DPycsqdBIF0v1wppIy4yl SibtyrNJvIGD0tCWD0pV8x//SL/ziJNcXJXp2+DnFZZJQ4KpTdUQrXVEpcg4K/ZR 5CbNFUYnXoItbPpJi2fKLAdyB0ZBgGw0bIYhLjtoiR+upzNV4R4JNuC99GO9kSpr RdEmPzYbmc6OiHs33li7pYrj7/P5hKajL9lPJItns8rX6JsKIeEE2/xdWju2qk1M sHA6tRn7ZNpRSBBZsL/1QP8CZjMW2439hG2sz9emwhIdoUSH4eVVG8S0o7KH2eDN ji9UB0W4ww1lyy5QksWk/uL4pHjTLhj7uTcpYA3kkvq7sXNGDAMU3m0wmLSAzzSR fQ+wONKOpS1LcpTk/Rpxb5QAANyiGBLwOc4XUgfApRiydB0Rpb4= =l4pf -----END PGP SIGNATURE----- Merge tag 'efi-2021-04-rc3-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2021-04-rc3-2 Bug fixes: * debug build for mkeficapsule * limit output length for VenHw, VenMedia * ACPI tables must be in EfiACPIReclaimMemory
This commit is contained in:
commit
9935050b44
|
@ -708,6 +708,7 @@ F: cmd/efidebug.c
|
||||||
F: cmd/nvedit_efi.c
|
F: cmd/nvedit_efi.c
|
||||||
F: tools/efivar.py
|
F: tools/efivar.py
|
||||||
F: tools/file2include.c
|
F: tools/file2include.c
|
||||||
|
F: tools/mkeficapsule.c
|
||||||
|
|
||||||
EFI VARIABLES VIA OP-TEE
|
EFI VARIABLES VIA OP-TEE
|
||||||
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
||||||
|
|
|
@ -507,6 +507,10 @@ static const struct {
|
||||||
"System Partition",
|
"System Partition",
|
||||||
PARTITION_SYSTEM_GUID
|
PARTITION_SYSTEM_GUID
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Firmware Management",
|
||||||
|
EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID
|
||||||
|
},
|
||||||
/* Configuration table GUIDs */
|
/* Configuration table GUIDs */
|
||||||
{
|
{
|
||||||
"ACPI table",
|
"ACPI table",
|
||||||
|
|
|
@ -242,7 +242,7 @@ struct efi_open_protocol_info_item {
|
||||||
* @link: link to the list of protocols of a handle
|
* @link: link to the list of protocols of a handle
|
||||||
* @guid: GUID of the protocol
|
* @guid: GUID of the protocol
|
||||||
* @protocol_interface: protocol interface
|
* @protocol_interface: protocol interface
|
||||||
* @open_infos link to the list of open protocol info items
|
* @open_infos: link to the list of open protocol info items
|
||||||
*/
|
*/
|
||||||
struct efi_handler {
|
struct efi_handler {
|
||||||
struct list_head link;
|
struct list_head link;
|
||||||
|
@ -258,9 +258,13 @@ struct efi_handler {
|
||||||
* started image.
|
* started image.
|
||||||
*/
|
*/
|
||||||
enum efi_object_type {
|
enum efi_object_type {
|
||||||
|
/** @EFI_OBJECT_TYPE_UNDEFINED: undefined image type */
|
||||||
EFI_OBJECT_TYPE_UNDEFINED = 0,
|
EFI_OBJECT_TYPE_UNDEFINED = 0,
|
||||||
|
/** @EFI_OBJECT_TYPE_U_BOOT_FIRMWARE: U-Boot firmware */
|
||||||
EFI_OBJECT_TYPE_U_BOOT_FIRMWARE,
|
EFI_OBJECT_TYPE_U_BOOT_FIRMWARE,
|
||||||
|
/** @EFI_OBJECT_TYPE_LOADED_IMAGE: loaded image (not started) */
|
||||||
EFI_OBJECT_TYPE_LOADED_IMAGE,
|
EFI_OBJECT_TYPE_LOADED_IMAGE,
|
||||||
|
/** @EFI_OBJECT_TYPE_STARTED_IMAGE: started image */
|
||||||
EFI_OBJECT_TYPE_STARTED_IMAGE,
|
EFI_OBJECT_TYPE_STARTED_IMAGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -270,6 +274,7 @@ enum efi_object_type {
|
||||||
* @link: pointers to put the handle into a linked list
|
* @link: pointers to put the handle into a linked list
|
||||||
* @protocols: linked list with the protocol interfaces installed on this
|
* @protocols: linked list with the protocol interfaces installed on this
|
||||||
* handle
|
* handle
|
||||||
|
* @type: image type if the handle relates to an image
|
||||||
*
|
*
|
||||||
* UEFI offers a flexible and expandable object model. The objects in the UEFI
|
* UEFI offers a flexible and expandable object model. The objects in the UEFI
|
||||||
* API are devices, drivers, and loaded images. struct efi_object is our storage
|
* API are devices, drivers, and loaded images. struct efi_object is our storage
|
||||||
|
@ -325,7 +330,7 @@ struct efi_loaded_image_obj {
|
||||||
* @queue_link: Link to the list of queued events
|
* @queue_link: Link to the list of queued events
|
||||||
* @type: Type of event, see efi_create_event
|
* @type: Type of event, see efi_create_event
|
||||||
* @notify_tpl: Task priority level of notifications
|
* @notify_tpl: Task priority level of notifications
|
||||||
* @nofify_function: Function to call when the event is triggered
|
* @notify_function: Function to call when the event is triggered
|
||||||
* @notify_context: Data to be passed to the notify function
|
* @notify_context: Data to be passed to the notify function
|
||||||
* @group: Event group
|
* @group: Event group
|
||||||
* @trigger_time: Period of the timer
|
* @trigger_time: Period of the timer
|
||||||
|
@ -368,7 +373,8 @@ struct efi_protocol_notification {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* efi_register_notify_event - event registered by RegisterProtocolNotify()
|
* struct efi_register_notify_event - event registered by
|
||||||
|
* RegisterProtocolNotify()
|
||||||
*
|
*
|
||||||
* The address of this structure serves as registration value.
|
* The address of this structure serves as registration value.
|
||||||
*
|
*
|
||||||
|
@ -747,7 +753,7 @@ efi_status_t efi_set_load_options(efi_handle_t handle,
|
||||||
efi_status_t efi_bootmgr_load(efi_handle_t *handle, void **load_options);
|
efi_status_t efi_bootmgr_load(efi_handle_t *handle, void **load_options);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* efi_image_regions - A list of memory regions
|
* struct efi_image_regions - A list of memory regions
|
||||||
*
|
*
|
||||||
* @max: Maximum number of regions
|
* @max: Maximum number of regions
|
||||||
* @num: Number of regions
|
* @num: Number of regions
|
||||||
|
@ -760,13 +766,13 @@ struct efi_image_regions {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* efi_sig_data - A decoded data of struct efi_signature_data
|
* struct efi_sig_data - A decoded data of struct efi_signature_data
|
||||||
*
|
*
|
||||||
* This structure represents an internal form of signature in
|
* This structure represents an internal form of signature in
|
||||||
* signature database. A listed list may represent a signature list.
|
* signature database. A listed list may represent a signature list.
|
||||||
*
|
*
|
||||||
* @next: Pointer to next entry
|
* @next: Pointer to next entry
|
||||||
* @onwer: Signature owner
|
* @owner: Signature owner
|
||||||
* @data: Pointer to signature data
|
* @data: Pointer to signature data
|
||||||
* @size: Size of signature data
|
* @size: Size of signature data
|
||||||
*/
|
*/
|
||||||
|
@ -778,7 +784,7 @@ struct efi_sig_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* efi_signature_store - A decoded data of signature database
|
* struct efi_signature_store - A decoded data of signature database
|
||||||
*
|
*
|
||||||
* This structure represents an internal form of signature database.
|
* This structure represents an internal form of signature database.
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,7 +25,7 @@ efi_status_t efi_acpi_register(void)
|
||||||
|
|
||||||
/* Reserve 64kiB page for ACPI */
|
/* Reserve 64kiB page for ACPI */
|
||||||
ret = efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS,
|
ret = efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS,
|
||||||
EFI_RUNTIME_SERVICES_DATA, 16, &acpi);
|
EFI_ACPI_RECLAIM_MEMORY, 16, &acpi);
|
||||||
if (ret != EFI_SUCCESS)
|
if (ret != EFI_SUCCESS)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ efi_status_t efi_acpi_register(void)
|
||||||
* a 4k-aligned address, so it is safe to assume that
|
* a 4k-aligned address, so it is safe to assume that
|
||||||
* write_acpi_tables() will write the table at that address.
|
* write_acpi_tables() will write the table at that address.
|
||||||
*/
|
*/
|
||||||
assert(!(acpi & 0xf));
|
|
||||||
write_acpi_tables(acpi);
|
write_acpi_tables(acpi);
|
||||||
|
|
||||||
/* And expose them to our EFI payload */
|
/* And expose them to our EFI payload */
|
||||||
|
|
|
@ -67,7 +67,8 @@ static char *dp_hardware(char *s, struct efi_device_path *dp)
|
||||||
|
|
||||||
s += sprintf(s, "VenHw(%pUl", &vdp->guid);
|
s += sprintf(s, "VenHw(%pUl", &vdp->guid);
|
||||||
n = (int)vdp->dp.length - sizeof(struct efi_device_path_vendor);
|
n = (int)vdp->dp.length - sizeof(struct efi_device_path_vendor);
|
||||||
if (n > 0) {
|
/* Node must fit into MAX_NODE_LEN) */
|
||||||
|
if (n > 0 && n < MAX_NODE_LEN / 2 - 22) {
|
||||||
s += sprintf(s, ",");
|
s += sprintf(s, ",");
|
||||||
for (i = 0; i < n; ++i)
|
for (i = 0; i < n; ++i)
|
||||||
s += sprintf(s, "%02x", vdp->vendor_data[i]);
|
s += sprintf(s, "%02x", vdp->vendor_data[i]);
|
||||||
|
@ -251,7 +252,8 @@ static char *dp_media(char *s, struct efi_device_path *dp)
|
||||||
|
|
||||||
s += sprintf(s, "VenMedia(%pUl", &vdp->guid);
|
s += sprintf(s, "VenMedia(%pUl", &vdp->guid);
|
||||||
n = (int)vdp->dp.length - sizeof(struct efi_device_path_vendor);
|
n = (int)vdp->dp.length - sizeof(struct efi_device_path_vendor);
|
||||||
if (n > 0) {
|
/* Node must fit into MAX_NODE_LEN) */
|
||||||
|
if (n > 0 && n < MAX_NODE_LEN / 2 - 24) {
|
||||||
s += sprintf(s, ",");
|
s += sprintf(s, ",");
|
||||||
for (i = 0; i < n; ++i)
|
for (i = 0; i < n; ++i)
|
||||||
s += sprintf(s, "%02x", vdp->vendor_data[i]);
|
s += sprintf(s, "%02x", vdp->vendor_data[i]);
|
||||||
|
|
|
@ -263,7 +263,7 @@ static int create_fwbin(char *path, char *bin, efi_guid_t *guid,
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("For output: %s\n", path);
|
printf("For output: %s\n", path);
|
||||||
printf("\tbin: %s\n\ttype: %pUl\n" bin, guid);
|
printf("\tbin: %s\n\ttype: %pUl\n", bin, guid);
|
||||||
printf("\tindex: %ld\n\tinstance: %ld\n", index, instance);
|
printf("\tindex: %ld\n\tinstance: %ld\n", index, instance);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user