1# Copyright (C) 2019-2022 Intel Corporation.
2# SPDX-License-Identifier: BSD-3-Clause
3
4"""constant for offline ACPI generator.
5
6"""
7
8import os, sys
9
10sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'library'))
11import acrn_config_utilities
12
13VM_CONFIGS_PATH = os.path.join(acrn_config_utilities.SOURCE_ROOT_DIR, 'misc', 'config_tools')
14TEMPLATE_ACPI_PATH = os.path.join(VM_CONFIGS_PATH, 'acpi_template', 'template')
15
16ACPI_TABLE_LIST = [('rsdp.asl', 'rsdp.aml'), ('xsdt.asl', 'xsdt.aml'), ('facp.asl', 'facp.aml'),
17                   ('mcfg.asl', 'mcfg.aml'), ('apic.asl', 'apic.aml'), ('tpm2.asl', 'tpm2.aml'),
18                   ('dsdt.aml', 'dsdt.aml'), ('ptct.aml', 'ptct.aml'), ('rtct.aml', 'rtct.aml')]
19
20ACPI_BASE = 0x7fe00000
21
22ACPI_RSDP_ADDR_OFFSET = 0x0         # (36 bytes fixed)
23ACPI_XSDT_ADDR_OFFSET = 0x80        # (36 bytes + 8*7 table addrs)
24ACPI_FADT_ADDR_OFFSET = 0x100       # (268 bytes)
25ACPI_DSDT_ADDR_OFFSET = 0x240       # (variable)
26ACPI_MCFG_ADDR_OFFSET = 0xBC0       # (60 bytes)
27ACPI_MADT_ADDR_OFFSET = 0xC00       # (62 + 8*n bytes, where n is the number of vCPUs)
28ACPI_RTCT_ADDR_OFFSET = 0xF00
29ACPI_TPM2_ADDR_OFFSET = 0x1300      # (52 bytes)
30
31ACPI_RSDP_ADDR = (ACPI_BASE + ACPI_RSDP_ADDR_OFFSET)
32ACPI_XSDT_ADDR = (ACPI_BASE + ACPI_XSDT_ADDR_OFFSET)
33ACPI_FADT_ADDR = (ACPI_BASE + ACPI_FADT_ADDR_OFFSET)
34ACPI_MCFG_ADDR = (ACPI_BASE + ACPI_MCFG_ADDR_OFFSET)
35ACPI_MADT_ADDR = (ACPI_BASE + ACPI_MADT_ADDR_OFFSET)
36ACPI_TPM2_ADDR = (ACPI_BASE + ACPI_TPM2_ADDR_OFFSET)
37ACPI_DSDT_ADDR = (ACPI_BASE + ACPI_DSDT_ADDR_OFFSET)
38ACPI_RTCT_ADDR = (ACPI_BASE + ACPI_RTCT_ADDR_OFFSET)
39ACPI_FACS_ADDR = 0x0
40
41VIRT_PCI_MMCFG_BASE = 0xE0000000
42
43ACPI_MADT_TYPE_IOAPIC = 1
44VIOAPIC_BASE = 0xFEC00000
45
46ACPI_MADT_TYPE_LOCAL_APIC = 0
47ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4
48
49TSN_DEVICE_LIST = ['8086:4ba0',
50                   '8086:4bb0',
51                   '8086:4b32']
52