/** @file Smbus policy Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SMBUS_CONFIG_H_ #define _SMBUS_CONFIG_H_ #define SMBUS_PREMEM_CONFIG_REVISION 1 extern EFI_GUID gSmbusPreMemConfigGuid; #pragma pack (push,1) #define PCH_MAX_SMBUS_RESERVED_ADDRESS 128 /// /// The SMBUS_CONFIG block lists the reserved addresses for non-ARP capable devices in the platform. /// typedef struct { /** Revision 1: Init version **/ CONFIG_BLOCK_HEADER Header; ///< Config Block Header /** This member describes whether or not the SMBus controller of PCH should be enabled. 0: Disable; 1: Enable. **/ UINT32 Enable : 1; UINT32 ArpEnable : 1; ///< Enable SMBus ARP support, 0: Disable; 1: Enable. UINT32 DynamicPowerGating : 1; ///< (Test) Disable or Enable Smbus dynamic power gating. /// /// (Test) SPD Write Disable, 0: leave SPD Write Disable bit; 1: set SPD Write Disable bit. /// For security recommendations, SPD write disable bit must be set. /// UINT32 SpdWriteDisable : 1; UINT32 RsvdBits0 : 28; ///< Reserved bits UINT16 SmbusIoBase; ///< SMBUS Base Address (IO space). Default is 0xEFA0. UINT8 Rsvd0; ///< Reserved bytes UINT8 NumRsvdSmbusAddresses; ///< The number of elements in the RsvdSmbusAddressTable. /** Array of addresses reserved for non-ARP-capable SMBus devices. **/ UINT8 RsvdSmbusAddressTable[PCH_MAX_SMBUS_RESERVED_ADDRESS]; } PCH_SMBUS_PREMEM_CONFIG; #pragma pack (pop) #endif // _SMBUS_CONFIG_H_