Skip to content

Commit

Permalink
ACPICA: acpidump: Add ACPI 1.0 RSDP support.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lv Zheng authored and Rafael J. Wysocki committed Oct 20, 2014
1 parent 5f8b35b commit f1b6975
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 2 deletions.
2 changes: 2 additions & 0 deletions drivers/acpi/acpica/actables.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
33 changes: 32 additions & 1 deletion drivers/acpi/acpica/tbxfroot.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
{

/*
Expand Down
2 changes: 1 addition & 1 deletion tools/power/acpi/tools/acpidump/apdump.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit f1b6975

Please sign in to comment.