On 31/10/21 06:56, Zixuan Wang wrote:
Hello, This patch series refactors the x86_64 UEFI set up process and fixes the `run-tests.sh` script to run under UEFI. The patches are organized as three parts. The first part (patches 1-2) refactors the x86_64 UEFI set up process. The previous UEFI setup calls arch-specific setup functions twice and generates arch-specific data structure. As Andrew suggested [1], we refactor this process to make only one call to the arch-specific function and generate arch-neutral data structures. This simplifies the set up process and makes it easier to develop UEFI support for other architectures. The second part (patch 3) converts several x86 test cases to Position-Independent Code (PIC) to run under UEFI. This patch is ported from the initial UEFI support patchset [2] with fixes to the 32-bit compilation. The third part (patches 4-7) fixes the UEFI runner scripts. Patch 4 sets UEFI OVMF image as readonly. Patch 5 fixes test cases' return code under UEFI, enabling Patch 6-7 to fix the `run-tests.sh` script under UEFI. This patch set is based on the `uefi` branch.
Thank you, for patches 1-6 I have squashed the patches when applicable (1, 4, 5, 6) and queued the others (2 and 3).
I did not queue patch 7 yet, it seems okay but I want to understand better the changes it needs in the harness and what is missing. I'll take a look during the week.
Paolo
Best regards, Zixuan Wang and Marc Orr [1] https://lore.kernel.org/kvm/20211005060549.clar5nakynz2zecl@xxxxxxxxxx/ [2] https://lore.kernel.org/kvm/20211004204931.1537823-1-zxwang42@xxxxxxxxx/ Marc Orr (2): scripts: Generalize EFI check x86 UEFI: Make run_tests.sh (mostly) work under UEFI Zixuan Wang (5): x86 UEFI: Remove mixed_mode x86 UEFI: Refactor set up process x86 UEFI: Convert x86 test cases to PIC x86 UEFI: Set UEFI OVMF as readonly x86 UEFI: Exit QEMU with return code lib/efi.c | 54 ++++++-- lib/efi.h | 19 ++- lib/linux/efi.h | 317 ++++++++++++++----------------------------- lib/x86/acpi.c | 36 +++-- lib/x86/acpi.h | 5 +- lib/x86/asm/setup.h | 16 +-- lib/x86/setup.c | 153 ++++++++++----------- lib/x86/usermode.c | 3 +- scripts/common.bash | 9 +- scripts/runtime.bash | 15 +- x86/Makefile.common | 10 +- x86/Makefile.x86_64 | 7 +- x86/access.c | 9 +- x86/cet.c | 8 +- x86/efi/run | 27 +++- x86/emulator.c | 5 +- x86/eventinj.c | 8 ++ x86/run | 6 +- x86/smap.c | 13 +- x86/umip.c | 26 +++- 20 files changed, 360 insertions(+), 386 deletions(-)