blob: 3268430cd1ee6cf54f13d2b9188ad4c11b12ca9c [file] [log] [blame]
Simon Glassb2672ea2020-04-08 16:57:38 -06001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Generic code used to generate ACPI tables
4 *
5 * Copyright 2019 Google LLC
6 */
7
8#include <common.h>
9#include <acpi/acpi_table.h>
10
11int acpi_get_table_revision(enum acpi_tables table)
12{
13 switch (table) {
14 case ACPITAB_FADT:
15 return ACPI_FADT_REV_ACPI_3_0;
16 case ACPITAB_MADT:
17 return ACPI_MADT_REV_ACPI_3_0;
18 case ACPITAB_MCFG:
19 return ACPI_MCFG_REV_ACPI_3_0;
20 case ACPITAB_TCPA:
21 /* This version and the rest are open-coded */
22 return 2;
23 case ACPITAB_TPM2:
24 return 4;
25 case ACPITAB_SSDT: /* ACPI 3.0 upto 6.3: 2 */
26 return 2;
27 case ACPITAB_SRAT: /* ACPI 2.0: 1, ACPI 3.0: 2, ACPI 4.0 to 6.3: 3 */
28 return 1; /* TODO Should probably be upgraded to 2 */
29 case ACPITAB_DMAR:
30 return 1;
31 case ACPITAB_SLIT: /* ACPI 2.0 upto 6.3: 1 */
32 return 1;
33 case ACPITAB_SPMI: /* IMPI 2.0 */
34 return 5;
35 case ACPITAB_HPET: /* Currently 1. Table added in ACPI 2.0 */
36 return 1;
37 case ACPITAB_VFCT: /* ACPI 2.0/3.0/4.0: 1 */
38 return 1;
39 case ACPITAB_IVRS:
40 return IVRS_FORMAT_FIXED;
41 case ACPITAB_DBG2:
42 return 0;
43 case ACPITAB_FACS: /* ACPI 2.0/3.0: 1, ACPI 4.0 to 6.3: 2 */
44 return 1;
45 case ACPITAB_RSDT: /* ACPI 1.0 upto 6.3: 1 */
46 return 1;
47 case ACPITAB_XSDT: /* ACPI 2.0 upto 6.3: 1 */
48 return 1;
49 case ACPITAB_RSDP: /* ACPI 2.0 upto 6.3: 2 */
50 return 2;
51 case ACPITAB_HEST:
52 return 1;
53 case ACPITAB_NHLT:
54 return 5;
55 case ACPITAB_BERT:
56 return 1;
57 case ACPITAB_SPCR:
58 return 2;
59 default:
60 return -EINVAL;
61 }
62}