mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
Merge tag 'efi-2026-07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2026-07-rc3 CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/30152 Documentation: * For reset command describe when the -edl option is available and fix a typo. UEFI: * If efi_allocate_pages() is with EFI_ALLOCATE_ADDRESS fails, return EFI_NOT_FOUND. * Fix HII keyboard layout pointer computation and extend HII keyboard layout tests. Others: * In reset command online help show -edl option only when enabled.
This commit is contained in:
@@ -60,8 +60,11 @@ U_BOOT_CMD(
|
||||
reset, 2, 0, do_reset,
|
||||
"Perform RESET of the CPU",
|
||||
"- cold boot without level specifier\n"
|
||||
#if IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_ARGS)
|
||||
// All options handled by sysreset drivers via their sysreset_ops.request_arg callback
|
||||
#ifdef CONFIG_SYSRESET_QCOM_PSCI
|
||||
"reset -edl - Boot to Emergency DownLoad mode\n"
|
||||
#endif
|
||||
#endif
|
||||
"reset -w - warm reset if implemented"
|
||||
);
|
||||
|
||||
@@ -11,7 +11,9 @@ Synopsis
|
||||
|
||||
::
|
||||
|
||||
reset [-w]
|
||||
reset
|
||||
reset -w
|
||||
reset -edl
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -20,10 +22,14 @@ Perform reset of the CPU. By default does COLD reset, which resets CPU,
|
||||
DDR and peripherals, on some boards also resets external PMIC.
|
||||
|
||||
-w
|
||||
Do warm WARM, reset CPU but keep peripheral/DDR/PMIC active.
|
||||
Do WARM reset: reset CPU but keep peripheral/DDR/PMIC active.
|
||||
|
||||
All other options require CONFIG_SYSRESET_CMD_RESET_ARGS=y.
|
||||
|
||||
-edl
|
||||
Boot to Emergency DownLoad mode on supported Qualcomm platforms.
|
||||
Boot to Emergency DownLoad mode on supported Qualcomm platforms. Unsupported
|
||||
platforms will print an error message but the command will successfully
|
||||
return (having done nothing). Requires CONFIG_SYSRESET_QCOM_PSCI=y.
|
||||
|
||||
Return value
|
||||
------------
|
||||
|
||||
@@ -324,7 +324,8 @@ add_keyboard_package(struct efi_hii_packagelist *hii,
|
||||
list_add_tail(&layout_data->link_sys,
|
||||
&efi_keyboard_layout_list);
|
||||
|
||||
layout += layout_length;
|
||||
layout = (struct efi_hii_keyboard_layout *)
|
||||
((uintptr_t)layout + layout_length);
|
||||
}
|
||||
|
||||
list_add_tail(&package_data->link, &hii->keyboard_packages);
|
||||
|
||||
@@ -495,7 +495,9 @@ efi_status_t efi_allocate_pages(enum efi_allocate_type type,
|
||||
/* Map would overlap, bail out */
|
||||
lmb_free(addr, (u64)pages << EFI_PAGE_SHIFT, flags);
|
||||
unmap_sysmem((void *)(uintptr_t)efi_addr);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
if (type == EFI_ALLOCATE_ADDRESS)
|
||||
return EFI_NOT_FOUND;
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
*memory = efi_addr;
|
||||
|
||||
@@ -452,8 +452,7 @@ out:
|
||||
* test_hii_database_get_keyboard_layout() - test retrieval of keyboard layout
|
||||
*
|
||||
* This test adds two package lists, each of which has two keyboard layouts
|
||||
* and then tries to get a handle to keyboard layout with a specific guid
|
||||
* and the current one.
|
||||
* and then tries to get a handle to every keyboard layout and the current one.
|
||||
*
|
||||
* @Return: status code
|
||||
*/
|
||||
@@ -463,7 +462,11 @@ static int test_hii_database_get_keyboard_layout(void)
|
||||
struct efi_hii_keyboard_layout *kb_layout;
|
||||
u16 kb_layout_size;
|
||||
efi_status_t ret;
|
||||
int result = EFI_ST_FAILURE;
|
||||
int result = EFI_ST_FAILURE, i;
|
||||
static efi_guid_t *const kb_layout_guids[] = {
|
||||
&kb_layout_guid11, &kb_layout_guid12,
|
||||
&kb_layout_guid21, &kb_layout_guid22
|
||||
};
|
||||
|
||||
PRINT_TESTNAME;
|
||||
ret = hii_database_protocol->new_package_list(hii_database_protocol,
|
||||
@@ -484,33 +487,37 @@ static int test_hii_database_get_keyboard_layout(void)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* specific keyboard_layout(guid11) */
|
||||
kb_layout = NULL;
|
||||
kb_layout_size = 0;
|
||||
ret = hii_database_protocol->get_keyboard_layout(hii_database_protocol,
|
||||
&kb_layout_guid11, &kb_layout_size, kb_layout);
|
||||
if (ret != EFI_BUFFER_TOO_SMALL) {
|
||||
efi_st_error("get_keyboard_layout returned %u\n",
|
||||
(unsigned int)ret);
|
||||
goto out;
|
||||
}
|
||||
ret = boottime->allocate_pool(EFI_LOADER_DATA, kb_layout_size,
|
||||
(void **)&kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("AllocatePool failed\n");
|
||||
goto out;
|
||||
}
|
||||
ret = hii_database_protocol->get_keyboard_layout(hii_database_protocol,
|
||||
&kb_layout_guid11, &kb_layout_size, kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("get_keyboard_layout returned %u\n",
|
||||
(unsigned int)ret);
|
||||
goto out;
|
||||
}
|
||||
ret = boottime->free_pool(kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("FreePool failed\n");
|
||||
goto out;
|
||||
/* Verify all keyboard layouts */
|
||||
for (i = 0; i < ARRAY_SIZE(kb_layout_guids); i++) {
|
||||
efi_guid_t *kb_layout_guid = kb_layout_guids[i];
|
||||
|
||||
kb_layout = NULL;
|
||||
kb_layout_size = 0;
|
||||
ret = hii_database_protocol->get_keyboard_layout(hii_database_protocol,
|
||||
kb_layout_guid, &kb_layout_size, kb_layout);
|
||||
if (ret != EFI_BUFFER_TOO_SMALL) {
|
||||
efi_st_error("get_keyboard_layout returned %u\n",
|
||||
(unsigned int)ret);
|
||||
goto out;
|
||||
}
|
||||
ret = boottime->allocate_pool(EFI_LOADER_DATA, kb_layout_size,
|
||||
(void **)&kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("AllocatePool failed\n");
|
||||
goto out;
|
||||
}
|
||||
ret = hii_database_protocol->get_keyboard_layout(hii_database_protocol,
|
||||
kb_layout_guid, &kb_layout_size, kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("get_keyboard_layout returned %u\n",
|
||||
(unsigned int)ret);
|
||||
goto out;
|
||||
}
|
||||
ret = boottime->free_pool(kb_layout);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("FreePool failed\n");
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/* current */
|
||||
|
||||
@@ -428,6 +428,18 @@ static efi_guid_t kb_layout_guid11 =
|
||||
EFI_GUID(0x8d40e495, 0xe2aa, 0x4c6f,
|
||||
0x89, 0x70, 0x68, 0x85, 0x09, 0xee, 0xc7, 0xd2);
|
||||
|
||||
static efi_guid_t kb_layout_guid12 =
|
||||
EFI_GUID(0x2ae60b3e, 0xb9d6, 0x49d8,
|
||||
0x9a, 0x16, 0xc2, 0x48, 0xf1, 0xeb, 0xa8, 0xdb);
|
||||
|
||||
static efi_guid_t kb_layout_guid21 =
|
||||
EFI_GUID(0xe0f56a1f, 0xdf6b, 0x4a7e,
|
||||
0xa3, 0x9a, 0xe7, 0xa5, 0x19, 0x15, 0x45, 0xd6);
|
||||
|
||||
static efi_guid_t kb_layout_guid22 =
|
||||
EFI_GUID(0x47be6ac9, 0x54cc, 0x46f9,
|
||||
0xa2, 0x62, 0xd5, 0x3b, 0x25, 0x6a, 0x0c, 0x34);
|
||||
|
||||
static efi_guid_t package_guid =
|
||||
EFI_GUID(0x0387c95a, 0xd703, 0x2346,
|
||||
0xb2, 0xab, 0xd0, 0xc7, 0xdd, 0x90, 0x44, 0xf8);
|
||||
|
||||
Reference in New Issue
Block a user