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, "Andrew Jones" <drjones@redhat.com>,
	"Samuel Ortiz" <sameo@linux.intel.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Shannon Zhao" <shannon.zhaosl@gmail.com>,
	Gonglei <arei.gonglei@huawei.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 01/14] tests: acpi: add uefi_find_rsdp_addr() helper
Date: Wed, 16 Jan 2019 10:48:04 +0100	[thread overview]
Message-ID: <20190116104804.2077439b@redhat.com> (raw)
In-Reply-To: <8bbf34cf-3e6b-5204-dd78-f8d17ce2e337@redhat.com>

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

> Hi Igor,
> 
> On 01/15/19 16:40, Igor Mammedov wrote:
> > introduce UEFI specific counterpart to acpi_find_rsdp_address()
> > that will help to find RSDP address when [OA]VMF is used as
> > firmware. It requires a [OA]VMF built with PcdAcpiTestSupport=TRUE,
> > to locate RSDP address within 1Mb aligned ACPI test structure, tagged
> > with GUID AB87A6B1-2034-BDA0-71BD-375007757785
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> >  tests/acpi-utils.h |  1 +
> >  tests/acpi-utils.c | 43 +++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 44 insertions(+)  
> 
> I'm not promising to review all of this patch set (Phil, feel free to
> chime in); I'll just make some quick comments below:
> 
> > diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h
> > index ef388bb..3b11f47 100644
> > --- a/tests/acpi-utils.h
> > +++ b/tests/acpi-utils.h
> > @@ -46,6 +46,7 @@ typedef struct {
> >  
> >  uint8_t acpi_calc_checksum(const uint8_t *data, int len);
> >  uint32_t acpi_find_rsdp_address(QTestState *qts);
> > +uint64_t uefi_find_rsdp_addr(QTestState *qts, uint64_t start, uint64_t size);  
> 
> I think it would make sense to keep the "acpi_find_rsdp_address" prefix
> for the new function name; maybe append "_uefi"? Because now "acpi" is
> replaced with "uefi , plus "address" is truncated to "addr"; those don't
> seem overly logical.
> 
> Anyway, up to you.
> 
> >  uint64_t acpi_get_xsdt_address(uint8_t *rsdp_table);
> >  void acpi_parse_rsdp_table(QTestState *qts, uint32_t addr, uint8_t *rsdp_table);
> >  void acpi_fetch_table(QTestState *qts, uint8_t **aml, uint32_t *aml_len,
> > diff --git a/tests/acpi-utils.c b/tests/acpi-utils.c
> > index cc33b46..b9ff9df 100644
> > --- a/tests/acpi-utils.c
> > +++ b/tests/acpi-utils.c
> > @@ -111,3 +111,46 @@ void acpi_fetch_table(QTestState *qts, uint8_t **aml, uint32_t *aml_len,
> >          g_assert(!acpi_calc_checksum(*aml, *aml_len));
> >      }
> >  }
> > +
> > +#define GUID_SIZE 16
> > +static uint8_t AcpiTestSupportGuid[GUID_SIZE] =
> > +     { 0xb1, 0xa6, 0x87, 0xab,
> > +       0x34, 0x20,
> > +       0xa0, 0xbd,
> > +       0x71, 0xbd, 0x37, 0x50, 0x07, 0x75, 0x77, 0x85 };  
> 
> I think this is generally good. QEMU has some utilities/helpers for
> working with UUIDs; however, for the test infrastructure, I think this
> should be good enough.
> 
> Suggestion: make the GUID "const" as well.
> 
> > +
> > +typedef struct {
> > +    uint8_t signature_guid[16];  
> 
> s/16/GUID_SIZE/?
> 
> > +    uint64_t rsdp10;
> > +    uint64_t rsdp20;
> > +} __attribute__((packed)) UefiTestSupport;
> > +
> > +/* Wait at most 600 seconds (test is slow with TCI and --enable-debug) */  
> 
> Do you specifically mean "Tiny Code Interpreter" here?
it's typo, I've meant TCG. I'll fix it.

> > +#define TEST_DELAY (1 * G_USEC_PER_SEC / 10)
> > +#define TEST_CYCLES MAX((600 * G_USEC_PER_SEC / TEST_DELAY), 1)
> > +#define MB 0x100000ULL
> > +uint64_t uefi_find_rsdp_addr(QTestState *qts, uint64_t start, uint64_t size)
> > +{
> > +    int i, j;
> > +    uint8_t data[GUID_SIZE];
> > +
> > +    for (i = 0; i < TEST_CYCLES; ++i) {
> > +        for (j = 0; j < size / MB; j++) {
> > +            /* look for GUID at every 1Mb block */
> > +            uint64_t addr = start + j * MB;
> > +
> > +            qtest_memread(qts, addr, data, sizeof(data));
> > +            if (!memcmp(AcpiTestSupportGuid, data, sizeof(data))) {
> > +                UefiTestSupport ret;
> > +
> > +                qtest_memread(qts, addr, &ret, sizeof(ret));
> > +                ret.rsdp10 = le64_to_cpu(ret.rsdp10);
> > +                ret.rsdp20 = le64_to_cpu(ret.rsdp20);
> > +                return ret.rsdp20 ? ret.rsdp20 : ret.rsdp10;
> > +            }
> > +        }
> > +        g_usleep(TEST_DELAY);
> > +    }
> > +    g_assert_not_reached();
> > +    return 0;
> > +}
> >   
> 
> Apart from my hair-splitting, it looks good. If you update
> 16-->GUID_SIZE, then you can add
Thanks,
I'll apply all of your suggestions for v2 respin

> 
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
> 
> Thanks,
> Laszlo
> 

  reply	other threads:[~2019-01-16  9:48 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 [this message]
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
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=20190116104804.2077439b@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.