ACPICA: acpidump: Add ACPI 1.0 RSDP support.
The acpidump currently always uses ACPI 2.0 format to dump RSDP, this patch adds ACPI 1.0 RSDP support. Link: https://bugs.acpica.org/show_bug.cgi?id=1097 Link: https://bugs.acpica.org/show_bug.cgi?id=1103 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Reported-and-tested-by: Rudolf Marek <r.marek@assembler.cz> Reported-and-tested-by: Rafal <fatwildcat@gmail.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
5f8b35b633
commit
f1b697525d
|
@ -49,6 +49,8 @@ acpi_status acpi_allocate_root_table(u32 initial_table_count);
|
|||
/*
|
||||
* tbxfroot - Root pointer utilities
|
||||
*/
|
||||
u32 acpi_tb_get_rsdp_length(struct acpi_table_rsdp *rsdp);
|
||||
|
||||
acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
|
||||
|
||||
u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length);
|
||||
|
|
|
@ -48,6 +48,36 @@
|
|||
#define _COMPONENT ACPI_TABLES
|
||||
ACPI_MODULE_NAME("tbxfroot")
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_get_rsdp_length
|
||||
*
|
||||
* PARAMETERS: rsdp - Pointer to RSDP
|
||||
*
|
||||
* RETURN: Table length
|
||||
*
|
||||
* DESCRIPTION: Get the length of the RSDP
|
||||
*
|
||||
******************************************************************************/
|
||||
u32 acpi_tb_get_rsdp_length(struct acpi_table_rsdp *rsdp)
|
||||
{
|
||||
|
||||
if (!ACPI_VALIDATE_RSDP_SIG(rsdp->signature)) {
|
||||
|
||||
/* BAD Signature */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* "Length" field is available if table version >= 2 */
|
||||
|
||||
if (rsdp->revision >= 2) {
|
||||
return (rsdp->length);
|
||||
} else {
|
||||
return (ACPI_RSDP_CHECKSUM_LENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_validate_rsdp
|
||||
|
@ -59,7 +89,8 @@ ACPI_MODULE_NAME("tbxfroot")
|
|||
* DESCRIPTION: Validate the RSDP (ptr)
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
||||
|
||||
acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp * rsdp)
|
||||
{
|
||||
|
||||
/*
|
||||
|
|
|
@ -146,7 +146,7 @@ u32 ap_get_table_length(struct acpi_table_header *table)
|
|||
|
||||
if (ACPI_VALIDATE_RSDP_SIG(table->signature)) {
|
||||
rsdp = ACPI_CAST_PTR(struct acpi_table_rsdp, table);
|
||||
return (rsdp->length);
|
||||
return (acpi_tb_get_rsdp_length(rsdp));
|
||||
}
|
||||
|
||||
/* Normal ACPI table */
|
||||
|
|
Loading…
Reference in New Issue