Merge tag 'efi-2025-07-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-07-rc1-2 Documentation: * dt_qemu: correct dumpdtb description * release_cycle: Use variable substitution for next version UEFI: * cmd: simplify eficonfig_init() * efi_selftest: check executing in EL2 * efi_selftest: use do_bootefi_exec() Others: * riscv: dts: jh7110: add bootph-pre-ram for &pllclk * mips: malta: set MIPS_RELOCATION_TABLE_SIZE=0xc000
This commit is contained in:
@@ -322,6 +322,7 @@ config MIPS_CACHE_DISABLE
|
||||
config MIPS_RELOCATION_TABLE_SIZE
|
||||
hex "Relocation table size"
|
||||
range 0x100 0x10000
|
||||
default "0xc000" if TARGET_MALTA
|
||||
default "0x8000"
|
||||
---help---
|
||||
A table of relocation data will be appended to the U-Boot binary
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&pllclk {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&syscrg {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
@@ -38,6 +38,9 @@ static efi_status_t bootefi_run_prepare(const char *load_options_path,
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
|
||||
(*image_objp)->auth_status = EFI_IMAGE_AUTH_PASSED;
|
||||
(*image_objp)->entry = efi_selftest;
|
||||
|
||||
/* Transfer environment variable as load options */
|
||||
return efi_env_set_load_options((efi_handle_t)*image_objp,
|
||||
load_options_path,
|
||||
@@ -106,8 +109,8 @@ static int do_efi_selftest(void)
|
||||
return CMD_RET_FAILURE;
|
||||
|
||||
/* Execute the test */
|
||||
ret = EFI_CALL(efi_selftest(&image_obj->header, &systab));
|
||||
free(loaded_image_info->load_options);
|
||||
ret = do_bootefi_exec(&image_obj->header,
|
||||
loaded_image_info->load_options);
|
||||
efi_free_pool(test_device_path);
|
||||
efi_free_pool(test_image_path);
|
||||
if (ret != EFI_SUCCESS)
|
||||
|
||||
@@ -2283,26 +2283,11 @@ static efi_status_t eficonfig_init(void)
|
||||
{
|
||||
efi_status_t ret = EFI_SUCCESS;
|
||||
static bool init;
|
||||
struct efi_handler *handler;
|
||||
unsigned long columns, rows;
|
||||
|
||||
if (!init) {
|
||||
ret = efi_search_protocol(efi_root, &efi_guid_text_input_protocol, &handler);
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
|
||||
ret = efi_protocol_open(handler, (void **)&cin, efi_root, NULL,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL);
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
ret = efi_search_protocol(efi_root, &efi_guid_text_output_protocol, &handler);
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
|
||||
ret = efi_protocol_open(handler, (void **)&cout, efi_root, NULL,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL);
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
cout = systab.con_out;
|
||||
cin = systab.con_in;
|
||||
|
||||
cout->query_mode(cout, cout->mode->mode, &columns, &rows);
|
||||
avail_row = rows - (EFICONFIG_MENU_HEADER_ROW_NUM +
|
||||
|
||||
@@ -16,15 +16,22 @@ Obtaining the QEMU devicetree
|
||||
Where QEMU generates its own devicetree to pass to U-Boot you can use
|
||||
`-dtb u-boot.dtb` to force QEMU to use U-Boot's in-tree version.
|
||||
|
||||
To obtain the devicetree that qemu generates, add `-machine dumpdtb=qemu.dtb`,
|
||||
e.g.::
|
||||
To obtain the devicetree that QEMU generates, add `dumpdtb=qemu.dtb` to the
|
||||
`-machine` argument, e.g.
|
||||
|
||||
qemu-system-arm -machine virt -machine dumpdtb=qemu.dtb
|
||||
.. code-block:: bash
|
||||
|
||||
qemu-system-aarch64 -machine virt -machine dumpdtb=qemu.dtb
|
||||
|
||||
qemu-system-riscv64 -machine virt -machine dumpdtb=qemu.dtb
|
||||
qemu-system-aarch64 \
|
||||
-machine virt,gic-version=3,dumpdtb=qemu.dtb \
|
||||
-cpu cortex-a57 \
|
||||
-smp 4 \
|
||||
-memory 8G \
|
||||
-chardev socket,id=chrtpm,path=/tmp/mytpm1/swtpm-sock \
|
||||
-tpmdev emulator,id=tpm0,chardev=chrtpm \
|
||||
-device tpm-tis-device,tpmdev=tpm0
|
||||
|
||||
Except for the dumpdtb=qemu.dtb sub-parameter use the same qemu-system-<arch>
|
||||
invocation that you would use to start U-Boot to to get a complete device-tree.
|
||||
|
||||
Merging in U-Boot nodes/properties
|
||||
----------------------------------
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
.. |next_ver| replace:: v2025.07
|
||||
|
||||
Release Cycle
|
||||
=============
|
||||
|
||||
@@ -53,13 +55,13 @@ Current Status
|
||||
|
||||
* U-Boot v2025.04 was released on Monday, 07 April 2025.
|
||||
|
||||
* The Merge Window for the next release (v2025.07) is **open** until the -rc1
|
||||
* The Merge Window for the next release (|next_ver|) is **open** until the -rc1
|
||||
release on Monday, 28 April 2025.
|
||||
|
||||
* The next branch is now **closed** until the -rc2 release on Monday, 12 May
|
||||
2025.
|
||||
|
||||
* Release "v2025.07" is scheduled for Monday, 07 July 2025.
|
||||
* Release "|next_ver|" is scheduled for Monday, 07 July 2025.
|
||||
|
||||
Future Releases
|
||||
---------------
|
||||
@@ -69,15 +71,15 @@ Future Releases
|
||||
|
||||
.. For the next scheduled release, release candidates were made on::
|
||||
|
||||
.. * U-Boot v2025.07-rc1 was released on Mon 21 April 2025.
|
||||
.. * U-Boot |next_ver|-rc1 was released on Mon 21 April 2025.
|
||||
|
||||
.. * U-Boot v2025.07-rc2 was released on Mon 12 May 2025.
|
||||
.. * U-Boot |next_ver|-rc2 was released on Mon 12 May 2025.
|
||||
|
||||
.. * U-Boot v2025.07-rc3 was released on Mon 26 May 2025.
|
||||
.. * U-Boot |next_ver|-rc3 was released on Mon 26 May 2025.
|
||||
|
||||
.. * U-Boot v2025.07-rc4 was released on Mon 09 June 2025.
|
||||
.. * U-Boot |next_ver|-rc4 was released on Mon 09 June 2025.
|
||||
|
||||
.. * U-Boot v2025.07-rc5 was released on Mon 23 June 2025.
|
||||
.. * U-Boot |next_ver|-rc5 was released on Mon 23 June 2025.
|
||||
|
||||
Please note that the following dates are planned only and may be deviated from
|
||||
as needed.
|
||||
|
||||
@@ -51,6 +51,7 @@ efi_selftest_variables_runtime.o \
|
||||
efi_selftest_watchdog.o
|
||||
|
||||
obj-$(CONFIG_EFI_ECPT) += efi_selftest_ecpt.o
|
||||
obj-$(CONFIG_ARM64) += efi_selftest_el.o
|
||||
obj-$(CONFIG_NETDEVICES) += efi_selftest_snp.o
|
||||
obj-$(CONFIG_EFI_HTTP_PROTOCOL) += efi_selftest_http.o
|
||||
obj-$(CONFIG_EFI_HTTP_PROTOCOL) += efi_selftest_ipconfig.o
|
||||
|
||||
46
lib/efi_selftest/efi_selftest_el.c
Normal file
46
lib/efi_selftest/efi_selftest_el.c
Normal file
@@ -0,0 +1,46 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Check current exception level on ARMv8.
|
||||
*/
|
||||
#include <efi_loader.h>
|
||||
#include <efi_selftest.h>
|
||||
|
||||
/**
|
||||
* current_exception_level()
|
||||
*
|
||||
* Return: current exception level, 0 - 3
|
||||
*/
|
||||
static unsigned int current_exception_level(void)
|
||||
{
|
||||
unsigned long el;
|
||||
|
||||
asm volatile (
|
||||
"MRS %0, CurrentEL"
|
||||
: "=r" (el) : : );
|
||||
|
||||
return (el >> 2) & 0x3;
|
||||
}
|
||||
|
||||
/**
|
||||
* execute() - execute test
|
||||
*
|
||||
* Check that the exception level is not EL3.
|
||||
*/
|
||||
static int execute(void)
|
||||
{
|
||||
unsigned int el = current_exception_level();
|
||||
|
||||
efi_st_printf("Exception level EL%u\n", el);
|
||||
if (el != 1 && el != 2) {
|
||||
efi_st_error("EL1 or EL2 expected");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
|
||||
return EFI_ST_SUCCESS;
|
||||
}
|
||||
|
||||
EFI_UNIT_TEST(el) = {
|
||||
.name = "exception level",
|
||||
.phase = EFI_EXECUTE_BEFORE_BOOTTIME_EXIT,
|
||||
.execute = execute,
|
||||
};
|
||||
Reference in New Issue
Block a user