/* $NoKeywords */ /** * @file * * SocConfiguration.h * * Contains SoC Fuse Data structure definitions. * * @xrefitem bom "File Content Label" "Release Content" * @e project: FDK * @e sub-project: UEFI * @e version: $Revision: 334098 $ @e date: $Date: 2016-01-08 14:21:15 -0600 (Fri, 08 Jan 2016) $ * */ /***************************************************************************** * * Copyright 2013 - 2016 ADVANCED MICRO DEVICES, INC. All Rights Reserved. * * This program and the accompanying materials are licensed and made available * under the terms and conditions of the BSD License which accompanies this * distribution. The full text of the license may be found at * http://opensource.org/licenses/bsd-license.php * * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR * IMPLIED. * ***************************************************************************/ //######################################################################### //######################################################################### //######################################################################### // NOTE: This file shared between SCP and UEFI, make sure all // // changes are reflected in both copies. // //######################################################################### //######################################################################### //######################################################################### #ifndef __SOC_CONFIGURATION_H_ #define __SOC_CONFIGURATION_H_ #ifdef __cplusplus extern "C" { #endif /*---------------------------------------------------------------------------------------- * M O D U L E S U S E D *---------------------------------------------------------------------------------------- */ #include "ProcessorBind.h" /*---------------------------------------------------------------------------------------- * D E F I N I T I O N S A N D M A C R O S *---------------------------------------------------------------------------------------- */ #define SOC_BRAND_NAME_SIZE (48) /*---------------------------------------------------------------------------------------- * T Y P E D E F S A N D S T R U C T U R E S *---------------------------------------------------------------------------------------- */ /// SOC Security Modes Enumeration typedef enum { SOC_SECURITY_MODE_BLANK = 0, ///< Security Mode Blank SOC_SECURITY_MODE_NOT_SECURE, ///< Security Mode Non-secure SOC_SECURITY_MODE_SECURE, ///< Security Mode Secure SOC_SECURITY_MODE_UNDEFINED, ///< Security Mode Undefined } SOC_SECURITY_MODES; /// SOC Configuration, i.e. fusing structure typedef struct { UINT64 SerialNumber; ///< SOC Serial Number SOC_SECURITY_MODES SecurityState; ///< Indicates what security mode the SOC is in. INT32 CpuMap; ///< Map of CPU cores in SOC. INT32 CpuDefaultAClock; ///< Default fused core frequency INT32 CpuClusterCount; ///< Number of CPU clusters in SOC. INT32 CpuCoreCount; ///< Number of CPU cores in SOC. INT32 CpuClusterBoot; ///< Primary cluster used for boot. INT32 CpuCoreBoot; ///< Primary core used for boot. INT32 CcpEnabled; ///< Indicates CCP enabled state. Zero if disabled; otherwise, enabled. INT32 PcieEnabled; ///< Indicates PCIe enabled state. Zero if disabled; otherwise, enabled. INT32 SataEnabled; ///< Indicates SATA enabled state. Zero if disabled; otherwise, enabled. INT32 XgeEnabled; ///< Indicates 10 gigabit Ethernet port enabled state. Zero if disabled; otherwise, enabled. UINT32 BrandId; ///< Brand ID UINT32 ConfigurationId; ///< Configuration ID UINT32 CpuIdModel; ///< CPU ID - Model UINT32 CpuIdExtModel; ///< CPU ID - Extended Model UINT32 CpuIdStepping; ///< CPU ID - Stepping UINT32 FixedErrata; ///< Fixed Errata UINT32 InternalRevision; ///< Internal Revision UINT32 ManufacturingSpecifiedId; ///< Manufacturing Specified Field CHAR8 BrandName[SOC_BRAND_NAME_SIZE]; ///< Null appended at end } SocConfiguration; #ifdef __cplusplus } #endif #endif // __SOC_CONFIGURATION_H__