mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-14 17:07:38 +00:00
218b062e8f
Add MM communication support using FF-A transport This feature allows accessing MM partitions services through EFI MM communication protocol. MM partitions such as StandAlonneMM or smm-gateway secure partitions which reside in secure world. An MM shared buffer and a door bell event are used to exchange the data. The data is used by EFI services such as GetVariable()/SetVariable() and copied from the communication buffer to the MM shared buffer. The secure partition is notified about availability of data in the MM shared buffer by an FF-A message (door bell). On such event, MM SP can read the data and updates the MM shared buffer with the response data. The response data is copied back to the communication buffer and consumed by the EFI subsystem. MM communication protocol supports FF-A 64-bit direct messaging. We tested the FF-A MM communication on the Corstone-1000 platform. We ran the UEFI SCT test suite containing EFI setVariable, getVariable and getNextVariable tests which involve FF-A MM communication and all tests are passing with the current changes. We made the SCT test reports (part of the ACS results) public following the latest Corstone-1000 platform software release. Please find the test reports at [1]. [1]: https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-test-report/-/tree/master/embedded-a/corstone1000/CORSTONE1000-2023.06/acs_results_fpga.zip Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com> Tested-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@konsulko.com> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> Cc: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
||
---|---|---|
.. | ||
.gitignore | ||
boothart.c | ||
dtbdump.c | ||
efi_acpi.c | ||
efi_bootmgr.c | ||
efi_boottime.c | ||
efi_capsule.c | ||
efi_conformance.c | ||
efi_console.c | ||
efi_device_path.c | ||
efi_device_path_to_text.c | ||
efi_device_path_utilities.c | ||
efi_disk.c | ||
efi_dt_fixup.c | ||
efi_esrt.c | ||
efi_file.c | ||
efi_firmware.c | ||
efi_freestanding.c | ||
efi_gop.c | ||
efi_helper.c | ||
efi_hii.c | ||
efi_hii_config.c | ||
efi_image_loader.c | ||
efi_load_initrd.c | ||
efi_load_options.c | ||
efi_memory.c | ||
efi_net.c | ||
efi_riscv.c | ||
efi_rng.c | ||
efi_root_node.c | ||
efi_runtime.c | ||
efi_setup.c | ||
efi_signature.c | ||
efi_smbios.c | ||
efi_string.c | ||
efi_tcg2.c | ||
efi_unicode_collation.c | ||
efi_var_common.c | ||
efi_var_file.c | ||
efi_var_mem.c | ||
efi_var_seed.S | ||
efi_variable.c | ||
efi_variable_tee.c | ||
efi_watchdog.c | ||
helloworld.c | ||
initrddump.c | ||
Kconfig | ||
Makefile |