All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: qemu-devel@nongnu.org, Gonglei <arei.gonglei@huawei.com>,
	"Shannon Zhao" <shannon.zhaosl@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Samuel Ortiz" <sameo@linux.intel.com>,
	"Andrew Jones" <drjones@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 08/14] tests: acpi: introduce an abilty start tests with UEFI firmware
Date: Wed, 16 Jan 2019 11:02:49 +0100	[thread overview]
Message-ID: <20190116110249.7c194dfc@redhat.com> (raw)
In-Reply-To: <21a83c4e-056b-f749-1b66-abaa5fe51e32@redhat.com>

On Tue, 15 Jan 2019 21:18:18 +0100
Laszlo Ersek <lersek@redhat.com> wrote:

> On 01/15/19 16:41, Igor Mammedov wrote:
> > For testcase to use UEFI firmware, one needs to provide and specify
> > firmware and varstore blobs names in test_data { uefi_fl1, uefi_fl2) }
> > fields respectively.
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> >  tests/bios-tables-test.c | 36 ++++++++++++++++++++++++++----------
> >  1 file changed, 26 insertions(+), 10 deletions(-)
> > 
> > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> > index 8887319..d290dd2 100644
> > --- a/tests/bios-tables-test.c
> > +++ b/tests/bios-tables-test.c
> > @@ -26,6 +26,8 @@
> >  typedef struct {
> >      const char *machine;
> >      const char *variant;
> > +    const char *uefi_fl1;
> > +    const char *uefi_fl2;
> >      uint64_t rsdp_addr;
> >      uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */];
> >      GArray *tables;
> > @@ -519,21 +521,35 @@ static void test_smbios_structs(test_data *data)
> >  static void test_acpi_one(const char *params, test_data *data)
> >  {
> >      char *args;
> > -
> > -    /* Disable kernel irqchip to be able to override apic irq0. */
> > -    args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off "
> > -                           "-net none -display none %s "
> > -                           "-drive id=hd0,if=none,file=%s,format=raw "
> > -                           "-device ide-hd,drive=hd0 ",
> > -                           data->machine, "kvm:tcg",
> > -                           params ? params : "", disk);
> > +    bool use_uefi = data->uefi_fl1 && data->uefi_fl2;
> > +
> > +    if (use_uefi) {
> > +        args = g_strdup_printf("-machine %s,accel=%s -nodefaults -nographic "
> > +            "-drive if=pflash,format=raw,file=%s/%s,readonly "
> > +            "-drive if=pflash,format=raw,file=%s/%s,snapshot=on %s",  
> 
> Today I Learned: about "snapshot=on". Thanks :) The command line looks good.
This way one doesn't have to make images in C (which is messy), keep track of
temporary images and clean up (which isn't reliable when test crashes).
Makefile magic can to all of that and in a much cleaner way.

> > +            data->machine, "kvm:tcg", data_dir, data->uefi_fl1, data_dir,  
> 
> You could open-code "kvm:tcg" in the format string at once (unless you
> turn that into a parameter in a later patch in the series). But, I see
> the pre-patch code passes "kvm:tcg" as an argument too.
That was my line of reasoning as well, so I've kept it for consistence
with original code. If someone would insist I can throw in a separate
patch to open-code it before this one.

> > +            data->uefi_fl2, params ? params : "");
> > +
> > +    } else {
> > +        /* Disable kernel irqchip to be able to override apic irq0. */
> > +        args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off "
> > +            "-net none -display none %s "
> > +            "-drive id=hd0,if=none,file=%s,format=raw "
> > +            "-device ide-hd,drive=hd0 ",
> > +             data->machine, "kvm:tcg", params ? params : "", disk);
> > +    }
> >  
> >      data->qts = qtest_init(args);
> >  
> > -    boot_sector_test(data->qts);
> > +    if (use_uefi) {
> > +        data->rsdp_addr = uefi_find_rsdp_addr(data->qts,
> > +            0x40000000ULL, 128ULL * 1024 * 1024);  
> 
> I think open-coding the DRAM size is valid; after all, it depends on the
> QEMU command line, and you control the QEMU command line above. However,
> do we really want to open-code the DRAM base here? That's
> board-specific. Should we pass that too through the "test_data" structure?
I've missed this one. In addition to your suggestion, RAM size is also
a good candidate for "test_data" structure.

> 
> > +    } else {
> > +        boot_sector_test(data->qts);
> > +        test_acpi_rsdp_address(data);
> > +    }
> >  
> >      data->tables = g_array_new(false, true, sizeof(AcpiSdtTable));
> > -    test_acpi_rsdp_address(data);
> >      test_acpi_rsdp_table(data);
> >      test_acpi_rxsdt_table(data);
> >      test_acpi_fadt_table(data);
> >   
> 
> Thanks,
> Laszlo

  reply	other threads:[~2019-01-16 10:03 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-15 15:40 [Qemu-devel] [PATCH 00/14] tests: acpi: add UEFI (ARM) testing support Igor Mammedov
2019-01-15 15:40 ` [Qemu-devel] [PATCH 01/14] tests: acpi: add uefi_find_rsdp_addr() helper Igor Mammedov
2019-01-15 20:06   ` Laszlo Ersek
2019-01-16  9:48     ` Igor Mammedov
2019-01-15 15:40 ` [Qemu-devel] [PATCH 02/14] tests: acpi: make RSDT test routine handle XSDT Igor Mammedov
2019-01-16 16:47   ` Philippe Mathieu-Daudé
2019-01-15 15:40 ` [Qemu-devel] [PATCH 03/14] tests: acpi: rename acpi_parse_rsdp_table() into acpi_fetch_rsdp_table() Igor Mammedov
2019-01-16 16:48   ` Philippe Mathieu-Daudé
2019-01-15 15:40 ` [Qemu-devel] [PATCH 04/14] tests: acpi: make pointer to RSDP 64bit Igor Mammedov
2019-01-15 20:09   ` Laszlo Ersek
2019-01-16 16:51   ` Philippe Mathieu-Daudé
2019-01-15 15:40 ` [Qemu-devel] [PATCH 05/14] tests: acpi: fetch X_DSDT if pointer to DSDT is 0 Igor Mammedov
2019-01-17 14:02   ` Philippe Mathieu-Daudé
2019-01-17 15:02     ` Igor Mammedov
2019-01-15 15:40 ` [Qemu-devel] [PATCH 06/14] tests: acpi: add reference blobs arm/virt board testcase Igor Mammedov
2019-01-15 15:40 ` [Qemu-devel] [PATCH 07/14] tests: acpi: skip FACS table if board uses hw reduced ACPI profile Igor Mammedov
2019-01-16 16:58   ` Philippe Mathieu-Daudé
2019-01-15 15:41 ` [Qemu-devel] [PATCH 08/14] tests: acpi: introduce an abilty start tests with UEFI firmware Igor Mammedov
2019-01-15 20:18   ` Laszlo Ersek
2019-01-16 10:02     ` Igor Mammedov [this message]
2019-01-15 15:41 ` [Qemu-devel] [PATCH 09/14] tests: acpi: move boot_sector_init() into x86 tests branch Igor Mammedov
2019-01-16 16:59   ` Philippe Mathieu-Daudé
2019-01-15 15:41 ` [Qemu-devel] [PATCH 10/14] tests: acpi: ignore SMBIOS tests when UEFI firmware is used Igor Mammedov
2019-01-15 20:31   ` Laszlo Ersek
2019-01-16 10:32     ` Igor Mammedov
2019-01-16 11:07       ` Laszlo Ersek
2019-01-16 11:09         ` Laszlo Ersek
2019-01-16 12:20           ` Igor Mammedov
2019-01-16 16:17             ` Laszlo Ersek
2019-01-17 15:22               ` Igor Mammedov
2019-01-16 11:52         ` Gerd Hoffmann
2019-01-16 12:31           ` Igor Mammedov
2019-01-16 16:22             ` Laszlo Ersek
2019-01-17 15:11               ` Igor Mammedov
2019-01-18 23:28                 ` Laszlo Ersek
2019-01-16 15:25           ` Michael S. Tsirkin
2019-01-15 15:41 ` [Qemu-devel] [PATCH 12/14] tests: acpi: prepare AVMF firmware blobs to be used by bios-tables-test Igor Mammedov
2019-01-15 15:41 ` [Qemu-devel] [PATCH 13/14] tests: acpi: add simple arm/virt testcase Igor Mammedov
2019-01-15 15:41 ` [Qemu-devel] [PATCH 14/14] tests: acpi: refactor rebuild-expected-aml.sh to dump ACPI tables for a specified list of targets Igor Mammedov
2019-01-16 17:08   ` Philippe Mathieu-Daudé
2019-01-17 15:28     ` Igor Mammedov
     [not found] ` <1547566866-129386-12-git-send-email-imammedo@redhat.com>
2019-01-15 20:47   ` [Qemu-devel] [PATCH 11/14] tests: acpi: add AVMF firmware blobs Laszlo Ersek
2019-01-16 12:29     ` Igor Mammedov
2019-01-16 16:01       ` Michael S. Tsirkin
2019-01-17  8:53         ` Laszlo Ersek
2019-01-17  8:58           ` Laszlo Ersek
2019-01-17 10:22           ` Gerd Hoffmann
2019-01-17 12:54             ` Laszlo Ersek
2019-01-17 14:09               ` Gerd Hoffmann
2019-01-18 23:23                 ` Laszlo Ersek
2019-01-17 15:42               ` Igor Mammedov

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=20190116110249.7c194dfc@redhat.com \
    --to=imammedo@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=drjones@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mst@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sameo@linux.intel.com \
    --cc=shannon.zhaosl@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.