mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
acpi: Add a central location for table version numbers
Each ACPI table has its own version number. Add the version numbers in a single function so we can keep them consistent and easily see what versions are supported. Start a new acpi_table file in a generic directory to house this function. We can move things over to this file from x86 as needed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
4
lib/acpi/Makefile
Normal file
4
lib/acpi/Makefile
Normal file
@@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y += acpi_table.o
|
62
lib/acpi/acpi_table.c
Normal file
62
lib/acpi/acpi_table.c
Normal file
@@ -0,0 +1,62 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Generic code used to generate ACPI tables
|
||||
*
|
||||
* Copyright 2019 Google LLC
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <acpi/acpi_table.h>
|
||||
|
||||
int acpi_get_table_revision(enum acpi_tables table)
|
||||
{
|
||||
switch (table) {
|
||||
case ACPITAB_FADT:
|
||||
return ACPI_FADT_REV_ACPI_3_0;
|
||||
case ACPITAB_MADT:
|
||||
return ACPI_MADT_REV_ACPI_3_0;
|
||||
case ACPITAB_MCFG:
|
||||
return ACPI_MCFG_REV_ACPI_3_0;
|
||||
case ACPITAB_TCPA:
|
||||
/* This version and the rest are open-coded */
|
||||
return 2;
|
||||
case ACPITAB_TPM2:
|
||||
return 4;
|
||||
case ACPITAB_SSDT: /* ACPI 3.0 upto 6.3: 2 */
|
||||
return 2;
|
||||
case ACPITAB_SRAT: /* ACPI 2.0: 1, ACPI 3.0: 2, ACPI 4.0 to 6.3: 3 */
|
||||
return 1; /* TODO Should probably be upgraded to 2 */
|
||||
case ACPITAB_DMAR:
|
||||
return 1;
|
||||
case ACPITAB_SLIT: /* ACPI 2.0 upto 6.3: 1 */
|
||||
return 1;
|
||||
case ACPITAB_SPMI: /* IMPI 2.0 */
|
||||
return 5;
|
||||
case ACPITAB_HPET: /* Currently 1. Table added in ACPI 2.0 */
|
||||
return 1;
|
||||
case ACPITAB_VFCT: /* ACPI 2.0/3.0/4.0: 1 */
|
||||
return 1;
|
||||
case ACPITAB_IVRS:
|
||||
return IVRS_FORMAT_FIXED;
|
||||
case ACPITAB_DBG2:
|
||||
return 0;
|
||||
case ACPITAB_FACS: /* ACPI 2.0/3.0: 1, ACPI 4.0 to 6.3: 2 */
|
||||
return 1;
|
||||
case ACPITAB_RSDT: /* ACPI 1.0 upto 6.3: 1 */
|
||||
return 1;
|
||||
case ACPITAB_XSDT: /* ACPI 2.0 upto 6.3: 1 */
|
||||
return 1;
|
||||
case ACPITAB_RSDP: /* ACPI 2.0 upto 6.3: 2 */
|
||||
return 2;
|
||||
case ACPITAB_HEST:
|
||||
return 1;
|
||||
case ACPITAB_NHLT:
|
||||
return 5;
|
||||
case ACPITAB_BERT:
|
||||
return 1;
|
||||
case ACPITAB_SPCR:
|
||||
return 2;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user