adds simple arm/virt test case that starts guest with
bios-tables-test.aarch64.iso.qcow2 boot image which
initializes UefiTestSupport* structure in RAM once
guest is booted.
* see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
v6:
* Since aarch64 TCG is broken on 32 bit arm host,
blacklist it till it's fixed
* add aarch64 to rebuild script list
v4:
* force test to use TCG accelerator
v3:
* use firmware blobs directly from pc-bios directory
* use bios-tables-test.aarch64.iso.qcow2 as test boot image
* drop leftover qtest-uefi-images-aarch64 iMakefile rule from
previos version (Laszlo)
* add Makefile rule to include bios-tables-test into
check-qtest-aarch64 target
v2:
* specify in test_data where board's RAM starts and RAM size
tests/Makefile.include | 4 ++++
tests/bios-tables-test.c | 18 ++++++++++++++++++
tests/data/acpi/rebuild-expected-aml.sh | 2 +-
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 1865f6b..2334969 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF)
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
+# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
+ifneq ($(ARCH),arm)
+check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF)
+endif
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index 28d7d42..1242d63 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void)
test_acpi_tcg_dimm_pxm(MACHINE_PC);
}
+static void test_acpi_virt_tcg(void)
+{
+ test_data data = {
+ .machine = "virt",
+ .accel = "tcg",
+ .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
+ .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
+ .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
+ .ram_start = 0x40000000ULL,
+ .scan_len = 128ULL * 1024 * 1024,
+ };
+
+ test_acpi_one("-cpu cortex-a57", &data);
+ free_test_data(&data);
+}
+
int main(int argc, char *argv[])
{
const char *arch = qtest_get_arch();
@@ -858,6 +874,8 @@ int main(int argc, char *argv[])
qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+ } else if (strcmp(arch, "aarch64") == 0) {
+ qtest_add_func("acpi/virt", test_acpi_virt_tcg);
}
ret = g_test_run();
boot_sector_cleanup(disk);
diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh
index ff7e622..d285321 100755
--- a/tests/data/acpi/rebuild-expected-aml.sh
+++ b/tests/data/acpi/rebuild-expected-aml.sh
@@ -12,7 +12,7 @@
# This work is licensed under the terms of the GNU GPLv2.
# See the COPYING.LIB file in the top-level directory.
-qemu_bins="x86_64-softmmu/qemu-system-x86_64"
+qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64"
if [ ! -e "tests/bios-tables-test" ]; then
echo "Test: bios-tables-test is required! Run make check before this script."
--
2.7.4
On 06/03/19 13:22, Igor Mammedov wrote:
> adds simple arm/virt test case that starts guest with
> bios-tables-test.aarch64.iso.qcow2 boot image which
> initializes UefiTestSupport* structure in RAM once
> guest is booted.
>
> * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> v6:
> * Since aarch64 TCG is broken on 32 bit arm host,
> blacklist it till it's fixed
> * add aarch64 to rebuild script list
> v4:
> * force test to use TCG accelerator
> v3:
> * use firmware blobs directly from pc-bios directory
> * use bios-tables-test.aarch64.iso.qcow2 as test boot image
> * drop leftover qtest-uefi-images-aarch64 iMakefile rule from
> previos version (Laszlo)
> * add Makefile rule to include bios-tables-test into
> check-qtest-aarch64 target
> v2:
> * specify in test_data where board's RAM starts and RAM size
>
> tests/Makefile.include | 4 ++++
> tests/bios-tables-test.c | 18 ++++++++++++++++++
> tests/data/acpi/rebuild-expected-aml.sh | 2 +-
> 3 files changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 1865f6b..2334969 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF)
> check-qtest-aarch64-y = tests/numa-test$(EXESUF)
> check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
> check-qtest-aarch64-y += tests/migration-test$(EXESUF)
> +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
I think you could also capture the following link here, in a comment:
# https://bugs.launchpad.net/qemu/+bug/1830872
> +ifneq ($(ARCH),arm)
Can we exclude all 32-bit host arches, not just ARM? The discussion in
LP#1830872 indicates aarch64-on-i386 can fail too (not this specific
guest payload FWIW, but the "tests/memory" test).
Other than that:
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Thanks,
Laszlo
> +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF)
> +endif
>
> check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
>
> diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> index 28d7d42..1242d63 100644
> --- a/tests/bios-tables-test.c
> +++ b/tests/bios-tables-test.c
> @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void)
> test_acpi_tcg_dimm_pxm(MACHINE_PC);
> }
>
> +static void test_acpi_virt_tcg(void)
> +{
> + test_data data = {
> + .machine = "virt",
> + .accel = "tcg",
> + .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
> + .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
> + .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
> + .ram_start = 0x40000000ULL,
> + .scan_len = 128ULL * 1024 * 1024,
> + };
> +
> + test_acpi_one("-cpu cortex-a57", &data);
> + free_test_data(&data);
> +}
> +
> int main(int argc, char *argv[])
> {
> const char *arch = qtest_get_arch();
> @@ -858,6 +874,8 @@ int main(int argc, char *argv[])
> qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
> qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
> qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
> + } else if (strcmp(arch, "aarch64") == 0) {
> + qtest_add_func("acpi/virt", test_acpi_virt_tcg);
> }
> ret = g_test_run();
> boot_sector_cleanup(disk);
> diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh
> index ff7e622..d285321 100755
> --- a/tests/data/acpi/rebuild-expected-aml.sh
> +++ b/tests/data/acpi/rebuild-expected-aml.sh
> @@ -12,7 +12,7 @@
> # This work is licensed under the terms of the GNU GPLv2.
> # See the COPYING.LIB file in the top-level directory.
>
> -qemu_bins="x86_64-softmmu/qemu-system-x86_64"
> +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64"
>
> if [ ! -e "tests/bios-tables-test" ]; then
> echo "Test: bios-tables-test is required! Run make check before this script."
>
On Mon, 3 Jun 2019 18:08:12 +0200
Laszlo Ersek <lersek@redhat.com> wrote:
> On 06/03/19 13:22, Igor Mammedov wrote:
> > adds simple arm/virt test case that starts guest with
> > bios-tables-test.aarch64.iso.qcow2 boot image which
> > initializes UefiTestSupport* structure in RAM once
> > guest is booted.
> >
> > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > v6:
> > * Since aarch64 TCG is broken on 32 bit arm host,
> > blacklist it till it's fixed
> > * add aarch64 to rebuild script list
> > v4:
> > * force test to use TCG accelerator
> > v3:
> > * use firmware blobs directly from pc-bios directory
> > * use bios-tables-test.aarch64.iso.qcow2 as test boot image
> > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from
> > previos version (Laszlo)
> > * add Makefile rule to include bios-tables-test into
> > check-qtest-aarch64 target
> > v2:
> > * specify in test_data where board's RAM starts and RAM size
> >
> > tests/Makefile.include | 4 ++++
> > tests/bios-tables-test.c | 18 ++++++++++++++++++
> > tests/data/acpi/rebuild-expected-aml.sh | 2 +-
> > 3 files changed, 23 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/Makefile.include b/tests/Makefile.include
> > index 1865f6b..2334969 100644
> > --- a/tests/Makefile.include
> > +++ b/tests/Makefile.include
> > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF)
> > check-qtest-aarch64-y = tests/numa-test$(EXESUF)
> > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
> > check-qtest-aarch64-y += tests/migration-test$(EXESUF)
> > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
>
> I think you could also capture the following link here, in a comment:
>
> # https://bugs.launchpad.net/qemu/+bug/1830872
Michael,
could you fix it up on commit?
or we could merge v4
[PATCH v4 13/15] tests: acpi: add simple arm/virt testcase
which is the same modulo this blacklisting hunk, if
[RFC PATCH] cputlb: use uint64_t for interim values for unaligned load
fix is used as prerequisite.
>
> > +ifneq ($(ARCH),arm)
>
> Can we exclude all 32-bit host arches, not just ARM? The discussion in
> LP#1830872 indicates aarch64-on-i386 can fail too (not this specific
> guest payload FWIW, but the "tests/memory" test).
I'd guess it's topic for a separate discussion (considering bios-tables-test
isn't affected it's probably not upto me to pull this trigger).
>
> Other than that:
>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Thanks!
>
> Thanks,
> Laszlo
>
>
> > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF)
> > +endif
> >
> > check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
> >
> > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> > index 28d7d42..1242d63 100644
> > --- a/tests/bios-tables-test.c
> > +++ b/tests/bios-tables-test.c
> > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void)
> > test_acpi_tcg_dimm_pxm(MACHINE_PC);
> > }
> >
> > +static void test_acpi_virt_tcg(void)
> > +{
> > + test_data data = {
> > + .machine = "virt",
> > + .accel = "tcg",
> > + .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
> > + .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
> > + .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
> > + .ram_start = 0x40000000ULL,
> > + .scan_len = 128ULL * 1024 * 1024,
> > + };
> > +
> > + test_acpi_one("-cpu cortex-a57", &data);
> > + free_test_data(&data);
> > +}
> > +
> > int main(int argc, char *argv[])
> > {
> > const char *arch = qtest_get_arch();
> > @@ -858,6 +874,8 @@ int main(int argc, char *argv[])
> > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
> > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
> > qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
> > + } else if (strcmp(arch, "aarch64") == 0) {
> > + qtest_add_func("acpi/virt", test_acpi_virt_tcg);
> > }
> > ret = g_test_run();
> > boot_sector_cleanup(disk);
> > diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh
> > index ff7e622..d285321 100755
> > --- a/tests/data/acpi/rebuild-expected-aml.sh
> > +++ b/tests/data/acpi/rebuild-expected-aml.sh
> > @@ -12,7 +12,7 @@
> > # This work is licensed under the terms of the GNU GPLv2.
> > # See the COPYING.LIB file in the top-level directory.
> >
> > -qemu_bins="x86_64-softmmu/qemu-system-x86_64"
> > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64"
> >
> > if [ ! -e "tests/bios-tables-test" ]; then
> > echo "Test: bios-tables-test is required! Run make check before this script."
> >
>
On Tue, Jun 04, 2019 at 01:51:33PM +0200, Igor Mammedov wrote:
> On Mon, 3 Jun 2019 18:08:12 +0200
> Laszlo Ersek <lersek@redhat.com> wrote:
>
> > On 06/03/19 13:22, Igor Mammedov wrote:
> > > adds simple arm/virt test case that starts guest with
> > > bios-tables-test.aarch64.iso.qcow2 boot image which
> > > initializes UefiTestSupport* structure in RAM once
> > > guest is booted.
> > >
> > > * see commit: tests: acpi: add acpi_find_rsdp_address_uefi() helper
> > >
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > ---
> > > v6:
> > > * Since aarch64 TCG is broken on 32 bit arm host,
> > > blacklist it till it's fixed
> > > * add aarch64 to rebuild script list
> > > v4:
> > > * force test to use TCG accelerator
> > > v3:
> > > * use firmware blobs directly from pc-bios directory
> > > * use bios-tables-test.aarch64.iso.qcow2 as test boot image
> > > * drop leftover qtest-uefi-images-aarch64 iMakefile rule from
> > > previos version (Laszlo)
> > > * add Makefile rule to include bios-tables-test into
> > > check-qtest-aarch64 target
> > > v2:
> > > * specify in test_data where board's RAM starts and RAM size
> > >
> > > tests/Makefile.include | 4 ++++
> > > tests/bios-tables-test.c | 18 ++++++++++++++++++
> > > tests/data/acpi/rebuild-expected-aml.sh | 2 +-
> > > 3 files changed, 23 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/tests/Makefile.include b/tests/Makefile.include
> > > index 1865f6b..2334969 100644
> > > --- a/tests/Makefile.include
> > > +++ b/tests/Makefile.include
> > > @@ -267,6 +267,10 @@ check-qtest-arm-y += tests/hexloader-test$(EXESUF)
> > > check-qtest-aarch64-y = tests/numa-test$(EXESUF)
> > > check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
> > > check-qtest-aarch64-y += tests/migration-test$(EXESUF)
> > > +# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
> >
> > I think you could also capture the following link here, in a comment:
> >
> > # https://bugs.launchpad.net/qemu/+bug/1830872
> Michael,
> could you fix it up on commit?
I prefer just seeing a fixed up patch.
> or we could merge v4
> [PATCH v4 13/15] tests: acpi: add simple arm/virt testcase
> which is the same modulo this blacklisting hunk, if
> [RFC PATCH] cputlb: use uint64_t for interim values for unaligned load
> fix is used as prerequisite.
>
> >
> > > +ifneq ($(ARCH),arm)
> >
> > Can we exclude all 32-bit host arches, not just ARM? The discussion in
> > LP#1830872 indicates aarch64-on-i386 can fail too (not this specific
> > guest payload FWIW, but the "tests/memory" test).
> I'd guess it's topic for a separate discussion (considering bios-tables-test
> isn't affected it's probably not upto me to pull this trigger).
>
> >
> > Other than that:
> >
> > Reviewed-by: Laszlo Ersek <lersek@redhat.com>
> Thanks!
>
> >
> > Thanks,
> > Laszlo
> >
> >
> > > +check-qtest-aarch64-y += tests/bios-tables-test$(EXESUF)
> > > +endif
> > >
> > > check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
> > >
> > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> > > index 28d7d42..1242d63 100644
> > > --- a/tests/bios-tables-test.c
> > > +++ b/tests/bios-tables-test.c
> > > @@ -830,6 +830,22 @@ static void test_acpi_piix4_tcg_dimm_pxm(void)
> > > test_acpi_tcg_dimm_pxm(MACHINE_PC);
> > > }
> > >
> > > +static void test_acpi_virt_tcg(void)
> > > +{
> > > + test_data data = {
> > > + .machine = "virt",
> > > + .accel = "tcg",
> > > + .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd",
> > > + .uefi_fl2 = "pc-bios/edk2-arm-vars.fd",
> > > + .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2",
> > > + .ram_start = 0x40000000ULL,
> > > + .scan_len = 128ULL * 1024 * 1024,
> > > + };
> > > +
> > > + test_acpi_one("-cpu cortex-a57", &data);
> > > + free_test_data(&data);
> > > +}
> > > +
> > > int main(int argc, char *argv[])
> > > {
> > > const char *arch = qtest_get_arch();
> > > @@ -858,6 +874,8 @@ int main(int argc, char *argv[])
> > > qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
> > > qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
> > > qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
> > > + } else if (strcmp(arch, "aarch64") == 0) {
> > > + qtest_add_func("acpi/virt", test_acpi_virt_tcg);
> > > }
> > > ret = g_test_run();
> > > boot_sector_cleanup(disk);
> > > diff --git a/tests/data/acpi/rebuild-expected-aml.sh b/tests/data/acpi/rebuild-expected-aml.sh
> > > index ff7e622..d285321 100755
> > > --- a/tests/data/acpi/rebuild-expected-aml.sh
> > > +++ b/tests/data/acpi/rebuild-expected-aml.sh
> > > @@ -12,7 +12,7 @@
> > > # This work is licensed under the terms of the GNU GPLv2.
> > > # See the COPYING.LIB file in the top-level directory.
> > >
> > > -qemu_bins="x86_64-softmmu/qemu-system-x86_64"
> > > +qemu_bins="x86_64-softmmu/qemu-system-x86_64 aarch64-softmmu/qemu-system-aarch64"
> > >
> > > if [ ! -e "tests/bios-tables-test" ]; then
> > > echo "Test: bios-tables-test is required! Run make check before this script."
> > >
> >
© 2016 - 2026 Red Hat, Inc.