/** @file Macros to simplify and abstract the interface to PCI configuration. Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SAACCESS_H_ #define _SAACCESS_H_ #include "SaRegs.h" #include "SaCommonDefinitions.h" /// /// SystemAgent Base Address definition /// #ifndef STALL_ONE_MICRO_SECOND #define STALL_ONE_MICRO_SECOND 1 #endif #ifndef STALL_ONE_MILLI_SECOND #define STALL_ONE_MILLI_SECOND 1000 #endif // // SA Segement Number // #define SA_SEG_NUM 0x00 #define V_SA_DEVICE_ID_INVALID 0xFFFF /// /// The value before AutoConfig match the setting of PCI Express Base Specification 1.1, please be careful for adding new feature /// typedef enum { PcieAspmDisabled, PcieAspmL0s, PcieAspmL1, PcieAspmL0sL1, PcieAspmAutoConfig, PcieAspmMax } SA_PCIE_ASPM_CONFIG; /// /// SgMode settings /// typedef enum { SgModeDisabled = 0, SgModeReserved, SgModeMuxless, SgModeDgpu, SgModeMax } SG_MODE; // // Macros that judge which type a device ID belongs to // #define IS_SA_DEVICE_ID_MOBILE(DeviceId) \ ( \ (DeviceId == V_SA_DEVICE_ID_KBL_MB_ULT_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_ULT_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_ULT_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_ULT_3) || \ (DeviceId == V_SA_DEVICE_ID_CFL_ULT_4) \ ) /// /// Device IDs that are Desktop specific B0:D0:F0 /// #define IS_SA_DEVICE_ID_DESKTOP(DeviceId) \ ( \ (DeviceId == V_SA_DEVICE_ID_KBL_DT_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_DT_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_DT_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_DT_3) || \ (DeviceId == V_SA_DEVICE_ID_CFL_DT_4) || \ (DeviceId == V_SA_DEVICE_ID_CFL_WS_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_WS_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_WS_3) \ ) /// /// Device IDS that are Server specific B0:D0:F0 /// #define IS_SA_DEVICE_ID_SERVER(DeviceId) \ ( \ (DeviceId == V_SA_DEVICE_ID_KBL_SVR_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_SVR_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_SVR_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_SVR_3) \ ) /// /// Device IDs that are Halo specific B0:D0:F0 /// #define IS_SA_DEVICE_ID_HALO(DeviceId) \ ( \ (DeviceId == V_SA_DEVICE_ID_KBL_HALO_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_HALO_1) || \ (DeviceId == V_SA_DEVICE_ID_CFL_HALO_2) || \ (DeviceId == V_SA_DEVICE_ID_CFL_HALO_3) || \ (DeviceId == V_SA_DEVICE_ID_CFL_HALO_IOT_1) \ ) #endif