kvmarm.lists.cs.columbia.edu archive mirror
 help / color / mirror / Atom feed
From: Nikos Nikoleris <nikos.nikoleris@arm.com>
To: Andrew Jones <andrew.jones@linux.dev>
Cc: kvm@vger.kernel.org, kvmarm@lists.linux.dev, pbonzini@redhat.com,
	alexandru.elisei@arm.com, ricarkol@google.com
Subject: Re: [PATCH v4 30/30] arm64: Add an efi/run script
Date: Wed, 22 Mar 2023 11:57:17 +0000	[thread overview]
Message-ID: <31ac48f6-c8d9-edb1-d013-551489a34740@arm.com> (raw)
In-Reply-To: <20230322112455.got7oypemataep2c@orel>

On 22/03/2023 11:24, Andrew Jones wrote:
> On Wed, Mar 22, 2023 at 10:02:35AM +0000, Nikos Nikoleris wrote:
>> Hi Drew,
>>
>> On 21/03/2023 18:41, Andrew Jones wrote:
>>> On Mon, Feb 13, 2023 at 10:17:59AM +0000, Nikos Nikoleris wrote:
>>>> This change adds a efi/run script inspired by the one in x86. This
>>>> script will setup a folder with the test compiled as an EFI app and a
>>>> startup.nsh script. The script launches QEMU providing an image with
>>>> EDKII and the path to the folder with the test which is executed
>>>> automatically.
>>>>
>>>> For example:
>>>>
>>>> $> ./arm/efi/run ./arm/selftest.efi setup smp=2 mem=256
>>>
>>> This should be
>>>
>>> ./arm/efi/run ./arm/selftest.efi -append "setup smp=2 mem=256" -smp 2 -m 256
>>>
>>
>> Indeed, I will update the commit message.
>>
>>> but I can't get any tests to run through ./arm/efi/run. All of them
>>> immediately die with a DABT_EL1. I can get the tests to run (and pass) by
>>> manually booting into UEFI with the FAT partition pointing at the parent
>>> directory
>>>
>>
>> I suppose the DABT_EL1 is happening after the test has started and not while
>> the UEFI interactive shell starts?
> 
> The countdown completes and the startup script runs (I can add an echo to
> check it). So it must be the test that fails.
> 
>>
>>>    $QEMU -nodefaults -machine virt -accel tcg -cpu cortex-a57 \
>>>          -device pci-testdev -display none -serial stdio \
>>>          -bios /usr/share/edk2/aarch64/QEMU_EFI.silent.fd \
>>>          -drive file.dir=efi-tests/,file.driver=vvfat,file.rw=on,format=raw,if=virtio
>>>
>>
>> Do you hit the DABT_EL1 if you let it automatically start using the
>> startup.nsh prepared by the ./arm/efi/run script? Meaning change the above
>> command if you provided -drive file.dir=efi-tests/timer instead:
>>
>>   $QEMU -nodefaults -machine virt -accel tcg -cpu cortex-a57 \
>>         -device pci-testdev -display none -serial stdio \
>>         -bios /usr/share/edk2/aarch64/QEMU_EFI.silent.fd \
>>         -drive file.dir=efi
>> tests/timer,file.driver=vvfat,file.rw=on,format=raw,if=virtio
> 
> Yes, this is what ./arm/efi/run does, and it doesn't help to use the
> command line directly.
> 
>>
>> Thanks for reviewing this!
>>
>> Nikos
>>
>>> and then, for example for the timer test, doing
>>>
>>>    fs0:
>>>    cd timer
>>>    timer.efi
> 
> This actually doesn't work. I was actually doing
> 
>   fs0:
>   cd timer
>   ls
>   timer.efi
> 
> and, believe it or not, without the 'ls' I get the dabt, with the 'ls' the
> test runs and passes. Adding an 'ls' to the startup script doesn't help
> the automatic execution though.
> 
> Which versions of QEMU and edk2 are you using? And what file system do you
> have the efi-tests directory on?
> 

I am using the QEMU_EFI.fd image that comes with Ubuntu 20.04.6 
(0~20191122.bd85bf54-2ubuntu3.4) 
https://packages.ubuntu.com/focal-updates/qemu-efi-aarch64

and I've tried two different versions of QEMU

$> qemu-system-aarch64 --version 

QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.24)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

$> ../qemu/build/qemu-system-aarch64 --version
QEMU emulator version 7.0.0 (v7.0.0-dirty)
Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers

efi-tests is on ext4

I am happy to have a closer look if you help me reproduce your environment.

Thanks,

Nikos

  reply	other threads:[~2023-03-22 11:57 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 10:17 [PATCH v4 00/30] EFI and ACPI support for arm64 Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 01/30] lib: Move acpi header and implementation to lib Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 02/30] x86: Move x86_64-specific EFI CFLAGS to x86_64 Makefile Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 03/30] arm/Makefile.common: Compile lib/acpi.c if CONFIG_EFI=y Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 04/30] lib: Apply Lindent to acpi.{c,h} Nikos Nikoleris
2023-03-09  7:11   ` Shaoqin Huang
2023-03-21 17:32     ` Andrew Jones
2023-03-22 10:05       ` Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 05/30] lib: Fix style for acpi.{c,h} Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 06/30] lib/acpi: Convert table names to Linux style Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 07/30] x86: Avoid references to fields of ACPI tables Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 08/30] lib/acpi: Ensure all struct definition for ACPI tables are packed Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 09/30] lib/acpi: Add support for the XSDT table Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 10/30] lib/acpi: Extend the definition of the FADT table Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 11/30] devicetree: Check that fdt is not NULL in dt_available() Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 12/30] arm64: Add support for setting up the PSCI conduit through ACPI Nikos Nikoleris
2023-03-21 17:31   ` Andrew Jones
2023-02-13 10:17 ` [PATCH v4 13/30] arm64: Add support for discovering the UART " Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 14/30] arm64: Add support for timer initialization " Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 15/30] arm64: Add support for cpu " Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 16/30] arm64: Add support for gic " Nikos Nikoleris
2023-03-30  6:46   ` Shaoqin Huang
2023-02-13 10:17 ` [PATCH v4 17/30] lib/printf: Support for precision modifier in printf Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 18/30] lib/printf: Add support for printing wide strings Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 19/30] lib/efi: Add support for getting the cmdline Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 20/30] arm/arm64: Rename etext to _etext Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 21/30] lib: Avoid ms_abi for calls related to EFI on arm64 Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 22/30] arm64: Add a new type of memory type flag MR_F_RESERVED Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 23/30] arm64: Add a setup sequence for systems that boot through EFI Nikos Nikoleris
2023-04-25  7:04   ` Shaoqin Huang
2023-04-25  9:09     ` Nikos Nikoleris
2023-04-25 18:31       ` Andrew Jones
2023-02-13 10:17 ` [PATCH v4 24/30] arm64: Copy code from GNU-EFI Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 25/30] arm64: Change GNU-EFI imported code to use defined types Nikos Nikoleris
2023-03-30  6:49   ` Shaoqin Huang
2023-02-13 10:17 ` [PATCH v4 26/30] arm64: Use code from the gnu-efi when booting with EFI Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 27/30] lib: Avoid external dependency in libelf Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 28/30] arm64: Add support for efi in Makefile Nikos Nikoleris
2023-03-21 18:21   ` Andrew Jones
2023-02-13 10:17 ` [PATCH v4 29/30] lib: arm: Print test exit status Nikos Nikoleris
2023-02-13 10:17 ` [PATCH v4 30/30] arm64: Add an efi/run script Nikos Nikoleris
2023-03-21 18:41   ` Andrew Jones
2023-03-22 10:02     ` Nikos Nikoleris
2023-03-22 11:24       ` Andrew Jones
2023-03-22 11:57         ` Nikos Nikoleris [this message]
2023-03-22 12:32           ` Andrew Jones
2023-03-22 19:09             ` Nikos Nikoleris
2023-03-23 17:52               ` Andrew Jones
2023-03-28  9:03                 ` Alexandru Elisei

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=31ac48f6-c8d9-edb1-d013-551489a34740@arm.com \
    --to=nikos.nikoleris@arm.com \
    --cc=alexandru.elisei@arm.com \
    --cc=andrew.jones@linux.dev \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=ricarkol@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).