1 /*++
2 
3 Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 
13 Module Name:
14 
15   EdkIIGlueConfig.h
16 
17 Abstract:
18 
19   Configurable items provided by GlueLib
20 
21 --*/
22 
23 #ifndef __EDKII_GLUE_CONFIG_H__
24 #define __EDKII_GLUE_CONFIG_H__
25 
26 #include "EdkIIGlueProcessorBind.h"
27 
28 //
29 //  Glue Library version
30 //
31 //  0x3000  - the 3rd release
32 //  0x5000  - support IPF. Jan, 2007
33 //  0x6000  - support EBC. Feb, 2007
34 //  0x7000  - size reduction, Jun, 2007
35 //  0x7100  - backward compatibility supported, Jun, 2007
36 //  0x8000  - Driver model protocols2 supported, May, 2008
37 //  0x9000  - add SmmRuntimeDxeReportStatusCodeLib and OemHookStatusCodeLibNull, Feb, 2009
38 //  0x9100  - change to use unique member RT variable names in various library instances, June, 2009
39 //  0x9200  - Update LEGACY_BOOT and READY_TO_BOOT event handling in UefiLib, July, 2009
40 //  0x9300  - Remove OemHookStatusCodeLibNull. SmmRuntimeDxeReportStatusCodeLib uses SMM StatusCode Protocol, Oct, 2009
41 //
42 //  For reference only, don't change the value
43 //
44 #define EDKII_GLUE_LIBRARY_VERSION 0x9300
45 
46 
47 //
48 // Check to make sure EFI_SPECIFICATION_VERSION and TIANO_RELEASE_VERSION are defined.
49 //
50 #if !defined(EFI_SPECIFICATION_VERSION)
51   #error EFI_SPECIFICATION_VERSION not defined
52 #elif !defined(TIANO_RELEASE_VERSION)
53   #error TIANO_RELEASE_VERSION not defined
54 #elif (TIANO_RELEASE_VERSION == 0)
55   #error TIANO_RELEASE_VERSION can not be zero
56 #endif
57 
58 
59 //
60 //  Glue Library debug flag
61 //
62 //  Controls debug ON/OFF of GlueLib itself, no
63 //  effect on any other libraries or modules
64 //
65 //  Values:
66 //    FALSE           : debug off
67 //    any TRUE value  : debug on
68 //
69 #define EDKII_GLUE_LIBRARY_DEBUG_ENABLE  0
70 
71 
72 //
73 // max unicode string length
74 //
75 #define EDKII_GLUE_MaximumUnicodeStringLength   1000000
76 
77 //
78 // max ascii string length
79 //
80 #define EDKII_GLUE_MaximumAsciiStringLength     1000000
81 
82 //
83 // spin lock timeout
84 //
85 #define EDKII_GLUE_SpinLockTimeout              10000000
86 
87 //
88 // max linked list length
89 //
90 #define EDKII_GLUE_MaximumLinkedListLength      1000000
91 
92 //
93 // debug print level
94 //
95 #ifndef EDKII_GLUE_DebugPrintErrorLevel
96 #define EDKII_GLUE_DebugPrintErrorLevel         (EFI_D_ERROR|EFI_D_INFO)
97 #endif
98 
99 //
100 // debug propery mask
101 //
102 #ifndef EDKII_GLUE_DebugPropertyMask
103 #define EDKII_GLUE_DebugPropertyMask           (  DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED                \
104                                                   | DEBUG_PROPERTY_DEBUG_PRINT_ENABLED               \
105                                                   | DEBUG_PROPERTY_DEBUG_CODE_ENABLED                \
106                                                   | DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED              \
107                                                   | DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED           \
108                                                )
109 #endif
110 
111 //
112 // clear memory value
113 //
114 #define EDKII_GLUE_DebugClearMemoryValue        0xAF
115 
116 //
117 // pci express base address.
118 // "PCD_EDKII_GLUE_PciExpressBaseAddress" is required to be defined explicitly:
119 // e.g. in EDK II DSC file to build EDK modules:
120 // [BuildOptions]
121 //   *_*_*_CC_FLAGS = /D PCD_EDKII_GLUE_PciExpressBaseAddress=0xC0000000
122 //
123 #ifndef EDKII_GLUE_PciExpressBaseAddress
124 #define EDKII_GLUE_PciExpressBaseAddress        PCD_EDKII_GLUE_PciExpressBaseAddress
125 #endif
126 
127 //
128 //
129 // This value is FSB Clock frequency. Its unit is Hz and its
130 // default value is 200000000, that means FSB frequency is 200Mhz.
131 //
132 #ifndef EDKII_GLUE_FSBClock
133 #define EDKII_GLUE_FSBClock                     200000000
134 #endif
135 
136 //
137 // post code property mask
138 //
139 #define EDKII_GLUE_PostCodePropertyMask         (  POST_CODE_PROPERTY_POST_CODE_ENABLED               \
140                                                      | POST_CODE_PROPERTY_POST_CODE_DESCRIPTION_ENABLED \
141                                                 )
142 
143 //
144 // status code property mask
145 //
146 #define EDKII_GLUE_ReportStatusCodePropertyMask (  REPORT_STATUS_CODE_PROPERTY_PROGRESS_CODE_ENABLED  \
147                                                      | REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED   \
148                                                      | REPORT_STATUS_CODE_PROPERTY_DEBUG_CODE_ENABLED   \
149                                                   )
150 
151 //
152 // for IPF only
153 // The base address of IPF IO Block
154 //
155 #ifdef MDE_CPU_IPF
156 #ifndef EDKII_GLUE_IoBlockBaseAddressForIpf
157 #define EDKII_GLUE_IoBlockBaseAddressForIpf     0x0ffffc000000
158 #endif
159 #endif
160 
161 #endif
162