acrn-hypervisor/hypervisor/include/arch/x86/default_acpi_info.h
Victor Sun 649406b049 HV: refine location of platform_acpi_info header
platform_acpi_info.h should be BOARD specific so move the header file
to configs/$(CONFIG_BOARD)/ folder.

So the target acpi info file detect process is:

Compiler search for $(CONFIG_BOARD)_acpi_info.h under
hypervisor/arch/x86/$(CONFIG_BOARD)/ first (the file is supposed to be
generated by offline tool so it is not included in original source), if
found, then the file is the target acpi info file. If not and at the
same time the ENFORCE_VALIDATED_ACPI_INFO Kconfig was set, the compiler
will stop and hint user to add target acpi info file by offline tool.
If ENFORCE_VALIDATED_ACPI_INFO was unset, then compiler will continue to
search for platform_acpi_info.h as target acpi info file under
hypervisor/arch/x86/$(CONFIG_BOARD) folder (with this file we could bypass
ENFORCE_VALIDATED_ACPI_INFO check and benifit for development). If this
file is not exist, then hypervisor/arch/x86/configs/platform_acpi_info.h
will be included as final target acpi info.

The process should work for UEFI path also, with a valid platform acpi
info file, S3/S5 should work on UEFI platform.

Tracked-On: #2291

Signed-off-by: Victor Sun <victor.sun@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-03-08 10:34:14 +08:00

52 lines
1.3 KiB
C

/*
* Copyright (C) 2018 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/* Given the reality that some of ACPI configrations are unlikey changed,
* define these MACROs in this header file.
* The platform_acpi_info.h still has chance to override the default
* definition by #undef with offline tool.
*/
#ifndef DEFAULT_ACPI_INFO_H
#define DEFAULT_ACPI_INFO_H
/* APIC */
#define LAPIC_BASE 0xFEE00000UL
#define IOAPIC0_BASE 0xFEC00000UL
#define IOAPIC1_BASE 0UL
/* pm sstate data */
#define PM1A_EVT_SPACE_ID SPACE_SYSTEM_IO
#define PM1A_EVT_BIT_WIDTH 0x20U
#define PM1A_EVT_BIT_OFFSET 0U
#define PM1B_EVT_SPACE_ID SPACE_SYSTEM_IO
#define PM1B_EVT_BIT_WIDTH 0U
#define PM1B_EVT_BIT_OFFSET 0U
#define PM1B_EVT_ACCESS_SIZE 0U
#define PM1B_EVT_ADDRESS 0UL
#define PM1A_CNT_SPACE_ID SPACE_SYSTEM_IO
#define PM1A_CNT_BIT_WIDTH 0x10U
#define PM1A_CNT_BIT_OFFSET 0U
#define PM1A_CNT_ACCESS_SIZE 2U
#define PM1B_CNT_SPACE_ID SPACE_SYSTEM_IO
#define PM1B_CNT_BIT_WIDTH 0U
#define PM1B_CNT_BIT_OFFSET 0U
#define PM1B_CNT_ACCESS_SIZE 0U
#define PM1B_CNT_ADDRESS 0UL
#define S3_PKG_VAL_PM1A 0x05U
#define S3_PKG_VAL_PM1B 0U
#define S3_PKG_RESERVED 0U
#define S5_PKG_VAL_PM1A 0x07U
#define S5_PKG_VAL_PM1B 0U
#define S5_PKG_RESERVED 0U
#endif /* DEFAULT_ACPI_INFO_H */