1 /* $NoKeywords */ 2 /** 3 * @file 4 * 5 * SocConfiguration.h 6 * 7 * Contains SoC Fuse Data structure definitions. 8 * 9 * @xrefitem bom "File Content Label" "Release Content" 10 * @e project: FDK 11 * @e sub-project: UEFI 12 * @e version: $Revision: 334098 $ @e date: $Date: 2016-01-08 14:21:15 -0600 (Fri, 08 Jan 2016) $ 13 * 14 */ 15 /***************************************************************************** 16 * 17 * Copyright 2013 - 2016 ADVANCED MICRO DEVICES, INC. All Rights Reserved. 18 * 19 * This program and the accompanying materials are licensed and made available 20 * under the terms and conditions of the BSD License which accompanies this 21 * distribution. The full text of the license may be found at 22 * http://opensource.org/licenses/bsd-license.php 23 * 24 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 25 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 26 * IMPLIED. 27 * 28 ***************************************************************************/ 29 30 //######################################################################### 31 //######################################################################### 32 //######################################################################### 33 // NOTE: This file shared between SCP and UEFI, make sure all // 34 // changes are reflected in both copies. // 35 //######################################################################### 36 //######################################################################### 37 //######################################################################### 38 39 #ifndef __SOC_CONFIGURATION_H_ 40 #define __SOC_CONFIGURATION_H_ 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 47 /*---------------------------------------------------------------------------------------- 48 * M O D U L E S U S E D 49 *---------------------------------------------------------------------------------------- 50 */ 51 #include "ProcessorBind.h" 52 53 /*---------------------------------------------------------------------------------------- 54 * D E F I N I T I O N S A N D M A C R O S 55 *---------------------------------------------------------------------------------------- 56 */ 57 #define SOC_BRAND_NAME_SIZE (48) 58 59 /*---------------------------------------------------------------------------------------- 60 * T Y P E D E F S A N D S T R U C T U R E S 61 *---------------------------------------------------------------------------------------- 62 */ 63 /// SOC Security Modes Enumeration 64 typedef enum { 65 SOC_SECURITY_MODE_BLANK = 0, ///< Security Mode Blank 66 SOC_SECURITY_MODE_NOT_SECURE, ///< Security Mode Non-secure 67 SOC_SECURITY_MODE_SECURE, ///< Security Mode Secure 68 SOC_SECURITY_MODE_UNDEFINED, ///< Security Mode Undefined 69 } SOC_SECURITY_MODES; 70 71 /// SOC Configuration, i.e. fusing structure 72 typedef struct { 73 UINT64 SerialNumber; ///< SOC Serial Number 74 SOC_SECURITY_MODES SecurityState; ///< Indicates what security mode the SOC is in. 75 INT32 CpuMap; ///< Map of CPU cores in SOC. 76 INT32 CpuDefaultAClock; ///< Default fused core frequency 77 INT32 CpuClusterCount; ///< Number of CPU clusters in SOC. 78 INT32 CpuCoreCount; ///< Number of CPU cores in SOC. 79 INT32 CpuClusterBoot; ///< Primary cluster used for boot. 80 INT32 CpuCoreBoot; ///< Primary core used for boot. 81 INT32 CcpEnabled; ///< Indicates CCP enabled state. Zero if disabled; otherwise, enabled. 82 INT32 PcieEnabled; ///< Indicates PCIe enabled state. Zero if disabled; otherwise, enabled. 83 INT32 SataEnabled; ///< Indicates SATA enabled state. Zero if disabled; otherwise, enabled. 84 INT32 XgeEnabled; ///< Indicates 10 gigabit Ethernet port enabled state. Zero if disabled; otherwise, enabled. 85 UINT32 BrandId; ///< Brand ID 86 UINT32 ConfigurationId; ///< Configuration ID 87 UINT32 CpuIdModel; ///< CPU ID - Model 88 UINT32 CpuIdExtModel; ///< CPU ID - Extended Model 89 UINT32 CpuIdStepping; ///< CPU ID - Stepping 90 UINT32 FixedErrata; ///< Fixed Errata 91 UINT32 InternalRevision; ///< Internal Revision 92 UINT32 ManufacturingSpecifiedId; ///< Manufacturing Specified Field 93 CHAR8 BrandName[SOC_BRAND_NAME_SIZE]; ///< Null appended at end 94 } SocConfiguration; 95 96 #ifdef __cplusplus 97 } 98 #endif 99 100 #endif // __SOC_CONFIGURATION_H__ 101