mirror of https://github.com/xemu-project/xemu.git
acpi: arm/virt: build_gtdt: fix invalid 64-bit physical addresses
Per the ACPI 6.5 specification, on the GTDT Table Structure, the Counter Control
Block Address and Counter Read Block Address fields of the GTDT table should be
set to 0xFFFFFFFFFFFFFFFF if not provided, rather than 0x0.
Fixes: 41041e5708
("acpi: arm/virt: build_gtdt: use acpi_table_begin()/acpi_table_end() instead of build_header()")
Signed-off-by: Miguel Luis <miguel.luis@oracle.com>
Message-Id: <20220920162137.75239-3-miguel.luis@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Ani Sinha <ani@anisinha.ca>
This commit is contained in:
parent
b1b146f53c
commit
5dbc9a2785
|
@ -592,8 +592,7 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
|
|||
acpi_table_begin(&table, table_data);
|
||||
|
||||
/* CntControlBase Physical Address */
|
||||
/* FIXME: invalid value, should be 0xFFFFFFFFFFFFFFFF if not impl. ? */
|
||||
build_append_int_noprefix(table_data, 0, 8);
|
||||
build_append_int_noprefix(table_data, 0xFFFFFFFFFFFFFFFF, 8);
|
||||
build_append_int_noprefix(table_data, 0, 4); /* Reserved */
|
||||
/*
|
||||
* FIXME: clarify comment:
|
||||
|
@ -618,7 +617,7 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
|
|||
/* Non-Secure EL2 timer Flags */
|
||||
build_append_int_noprefix(table_data, irqflags, 4);
|
||||
/* CntReadBase Physical address */
|
||||
build_append_int_noprefix(table_data, 0, 8);
|
||||
build_append_int_noprefix(table_data, 0xFFFFFFFFFFFFFFFF, 8);
|
||||
/* Platform Timer Count */
|
||||
build_append_int_noprefix(table_data, 0, 4);
|
||||
/* Platform Timer Offset */
|
||||
|
|
Loading…
Reference in New Issue