• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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