
Hi Heinrich,
On Sat, 4 Jan 2025 at 05:16, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 28.11.24 04:47, Kever Yang wrote:
The efi_stub is useing DEBUG_UART interface by default, Enable it.
As Simon already wrote in a code comment the implementation of the EFI stub is broken as it is not hardware agnostic.
If I said that I was wrong, sorry. Actually that is the stub's intent, to take over the machine, exit boot-services and carry on. It is the EFI app which is designed to use boot services.
So the stub cannot be hardware-agnostic, unfortunately. It only runs on x86 hardware, unless, for example, EFI has something like serial_getinfo() or we disable the UART / keyboard input.
In the EFI stub we should never directly access hardware. Please, use SimpleTextOutputProtocol.OutputString() for printing.
Once the stub starts, boot services are gone. See efi_main() for how this works. There is a definite point at which we stop using that and start using U-Boot's own thing.
At this point I think I may be misunderstanding what you said...
Signed-off-by: Kever Yang kever.yang@rock-chips.com
configs/efi-x86_payload32_defconfig | 1 + configs/efi-x86_payload64_defconfig | 1 + 2 files changed, 2 insertions(+)
diff --git a/configs/efi-x86_payload32_defconfig b/configs/efi-x86_payload32_defconfig index 071ddb8e36d..f0b9acc358d 100644 --- a/configs/efi-x86_payload32_defconfig +++ b/configs/efi-x86_payload32_defconfig @@ -5,6 +5,7 @@ CONFIG_DEFAULT_DEVICE_TREE="efi-x86_payload" CONFIG_PRE_CON_BUF_ADDR=0x100000 CONFIG_VENDOR_EFI=y CONFIG_TARGET_EFI_PAYLOAD=y +CONFIG_DEBUG_UART=y
On x86 this uses the NS16550 UART driver. This is fine as long as we don't use the debug UART in the EFI stub. But correcting this is for a separate patch.
Having a debug UART available after the EFI stub makes sense.
I will update the commit message when merging.
Reviewed-by: Heinrich Schuchardt xypron.glpk@gmx.de
CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_FIT=y diff --git a/configs/efi-x86_payload64_defconfig b/configs/efi-x86_payload64_defconfig index 71612d7fb19..b02a861e59c 100644 --- a/configs/efi-x86_payload64_defconfig +++ b/configs/efi-x86_payload64_defconfig @@ -5,6 +5,7 @@ CONFIG_DEFAULT_DEVICE_TREE="efi-x86_payload" CONFIG_PRE_CON_BUF_ADDR=0x100000 CONFIG_VENDOR_EFI=y CONFIG_TARGET_EFI_PAYLOAD=y +CONFIG_DEBUG_UART=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_STUB_64BIT=y
Regards, Simon