On Thu, May 02, 2019 at 04:51:52PM +0200, Igor Mammedov wrote: >In case of UEFI, RSDP doesn't have to be located in lowmem, >it could be placed at any address. Make sure that test won't >break if it is placed above the first 4Gb of address space. > >PS: >While at it cleanup some local variables as we don't really >need them. > >Signed-off-by: Igor Mammedov >Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Wei Yang >--- >v4: > - move acpi_fetch_rsdp_table(s/uint32_t addr/uint64_t addr/) to > this patch where it belongs from > "tests: acpi: make RSDT test routine handle XSDT" > (Wei Yang ) >v2: > - s/In case of UEFI/In case of UEFI,/ (Laszlo Ersek ) >--- > tests/acpi-utils.h | 2 +- > tests/acpi-utils.c | 2 +- > tests/bios-tables-test.c | 10 ++++------ > 3 files changed, 6 insertions(+), 8 deletions(-) > >diff --git a/tests/acpi-utils.h b/tests/acpi-utils.h >index f55ccf9..1da6c10 100644 >--- a/tests/acpi-utils.h >+++ b/tests/acpi-utils.h >@@ -46,7 +46,7 @@ typedef struct { > > uint8_t acpi_calc_checksum(const uint8_t *data, int len); > uint32_t acpi_find_rsdp_address(QTestState *qts); >-void acpi_fetch_rsdp_table(QTestState *qts, uint32_t addr, uint8_t *rsdp_table); >+void acpi_fetch_rsdp_table(QTestState *qts, uint64_t addr, uint8_t *rsdp_table); > void acpi_fetch_table(QTestState *qts, uint8_t **aml, uint32_t *aml_len, > const uint8_t *addr_ptr, int addr_size, const char *sig, > bool verify_checksum); >diff --git a/tests/acpi-utils.c b/tests/acpi-utils.c >index a0d49c4..c216b9e 100644 >--- a/tests/acpi-utils.c >+++ b/tests/acpi-utils.c >@@ -51,7 +51,7 @@ uint32_t acpi_find_rsdp_address(QTestState *qts) > return off; > } > >-void acpi_fetch_rsdp_table(QTestState *qts, uint32_t addr, uint8_t *rsdp_table) >+void acpi_fetch_rsdp_table(QTestState *qts, uint64_t addr, uint8_t *rsdp_table) > { > uint8_t revision; > >diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c >index d6ab121..a164d27 100644 >--- a/tests/bios-tables-test.c >+++ b/tests/bios-tables-test.c >@@ -26,7 +26,7 @@ > typedef struct { > const char *machine; > const char *variant; >- uint32_t rsdp_addr; >+ uint64_t rsdp_addr; > uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */]; > GArray *tables; > uint32_t smbios_ep_addr; >@@ -86,13 +86,11 @@ static void test_acpi_rsdp_address(test_data *data) > > static void test_acpi_rsdp_table(test_data *data) > { >- uint8_t *rsdp_table = data->rsdp_table, revision; >- uint32_t addr = data->rsdp_addr; >+ uint8_t *rsdp_table = data->rsdp_table; > >- acpi_fetch_rsdp_table(data->qts, addr, rsdp_table); >- revision = rsdp_table[15 /* Revision offset */]; >+ acpi_fetch_rsdp_table(data->qts, data->rsdp_addr, rsdp_table); > >- switch (revision) { >+ switch (rsdp_table[15 /* Revision offset */]) { > case 0: /* ACPI 1.0 RSDP */ > /* With rev 1, checksum is only for the first 20 bytes */ > g_assert(!acpi_calc_checksum(rsdp_table, 20)); >-- >2.7.4 -- Wei Yang Help you, Help me