• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*++
2 
3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
4 
5 
6   This program and the accompanying materials are licensed and made available under
7 
8   the terms and conditions of the BSD License that accompanies this distribution.
9 
10   The full text of the license may be found at
11 
12   http://opensource.org/licenses/bsd-license.php.
13 
14 
15 
16   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17 
18   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 
20 
21 
22 
23 Module Name:
24 
25   PlatformStatusCode.h
26 
27 Abstract:
28 
29   Contains Platform specific implementations required to use status codes.
30 
31 --*/
32 
33 #ifndef _PLATFORM_STATUS_CODE_H_
34 #define _PLATFORM_STATUS_CODE_H_
35 
36 
37 #define CONFIG_PORT0    0x4E
38 #define INDEX_PORT0     0x4E
39 #define DATA_PORT0      0x4F
40 #define PCI_IDX        0xCF8
41 #define PCI_DAT        0xCFC
42 
43 #include "MonoStatusCode.h"
44 
45 /*++
46 
47 Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
48 
49 
50   This program and the accompanying materials are licensed and made available under
51 
52   the terms and conditions of the BSD License that accompanies this distribution.
53 
54   The full text of the license may be found at
55 
56   http://opensource.org/licenses/bsd-license.php.
57 
58 
59 
60   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
61 
62   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
63 
64 
65 
66 This software and associated documentation (if any) is furnished
67 under a license and may only be used or copied in accordance
68 with the terms of the license. Except as permitted by such
69 license, no part of this software or documentation may be
70 reproduced, stored in a retrieval system, or transmitted in any
71 form or by any means without the express written consent of
72 Intel Corporation.
73 
74 
75 Module Name:
76 
77   Port80StatusCodeLib.h
78 
79 Abstract:
80 
81   Lib to provide status code reporting via port 80.
82 
83 --*/
84 
85 #ifndef _PEI_PORT_80_STATUS_CODE_H_
86 #define _PEI_PORT_80_STATUS_CODE_H_
87 
88 
89 
90 //
91 // Status code reporting function
92 //
93 EFI_STATUS
94 Port80ReportStatusCode (
95   IN CONST EFI_PEI_SERVICES         **PeiServices,
96   IN EFI_STATUS_CODE_TYPE           CodeType,
97   IN EFI_STATUS_CODE_VALUE          Value,
98   IN UINT32                         Instance,
99   IN CONST EFI_GUID                 * CallerId,
100   IN CONST EFI_STATUS_CODE_DATA     * Data OPTIONAL
101   );
102 
103 #endif
104 
105 /*++
106 
107 Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
108 
109 
110   This program and the accompanying materials are licensed and made available under
111 
112   the terms and conditions of the BSD License that accompanies this distribution.
113 
114   The full text of the license may be found at
115 
116   http://opensource.org/licenses/bsd-license.php.
117 
118 
119 
120   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
121 
122   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
123 
124 
125 
126 This software and associated documentation (if any) is furnished
127 under a license and may only be used or copied in accordance
128 with the terms of the license. Except as permitted by such
129 license, no part of this software or documentation may be
130 reproduced, stored in a retrieval system, or transmitted in any
131 form or by any means without the express written consent of
132 Intel Corporation.
133 
134 
135 Module Name:
136 
137   SerialStatusCodeLib.h
138 
139 Abstract:
140 
141   Lib to provide Serial I/O status code reporting.
142 
143 --*/
144 
145 #ifndef _PEI_SERIAL_STATUS_CODE_LIB_H_
146 #define _PEI_SERIAL_STATUS_CODE_LIB_H_
147 
148 
149 #include <Guid/StatusCodeDataTypeId.h>
150 #include <Guid/StatusCodeDataTypeDebug.h>
151 #include <Library/ReportStatusCodeLib.h>
152 #include <Library/PrintLib.h>
153 #include <Library/BaseMemoryLib.h>
154 
155 //
156 // Initialization function
157 //
158 VOID
159 SerialInitializeStatusCode (
160   VOID
161   );
162 
163 //
164 // Status code reporting function
165 //
166 EFI_STATUS
167 SerialReportStatusCode (
168   IN CONST EFI_PEI_SERVICES         **PeiServices,
169   IN EFI_STATUS_CODE_TYPE     CodeType,
170   IN EFI_STATUS_CODE_VALUE    Value,
171   IN UINT32                   Instance,
172   IN CONST EFI_GUID                 * CallerId,
173   IN CONST EFI_STATUS_CODE_DATA     * Data OPTIONAL
174   );
175 
176 #endif
177 
178 extern EFI_PEI_PROGRESS_CODE_PPI    mStatusCodePpi;
179 extern EFI_PEI_PPI_DESCRIPTOR mPpiListStatusCode;
180 #define EFI_SIGNATURE_16(A, B)        ((A) | (B << 8))
181 #define EFI_SIGNATURE_32(A, B, C, D)  (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
182 #define STATUSCODE_PEIM_SIGNATURE EFI_SIGNATURE_32 ('p', 's', 't', 'c')
183 
184 typedef struct {
185   UINT32                    Signature;
186   EFI_FFS_FILE_HEADER       *FfsHeader;
187   EFI_PEI_NOTIFY_DESCRIPTOR StatusCodeNotify;
188 } STATUSCODE_CALLBACK_STATE_INFORMATION;
189 
190 #pragma pack(1)
191 typedef struct {
192   UINT16  Limit;
193   UINT32  Base;
194 } GDT_DSCRIPTOR;
195 #pragma pack()
196 
197 #define STATUSCODE_PEIM_FROM_THIS(a) \
198   BASE_CR ( \
199   a, \
200   STATUSCODE_CALLBACK_STATE_INFORMATION, \
201   StatusCodeNotify \
202   )
203 
204 VOID
205 EFIAPI
206 PlatformInitializeStatusCode (
207   IN EFI_FFS_FILE_HEADER       *FfsHeader,
208   IN CONST EFI_PEI_SERVICES    **PeiServices
209   );
210 
211 
212 //
213 // Function declarations
214 //
215 /**
216   Install Firmware Volume Hob's once there is main memory
217 
218   @param PeiServices        General purpose services available to every PEIM.
219   @param NotifyDescriptor   Not Used
220   @param Ppi                Not Used
221 
222   @retval Status            EFI_SUCCESS if the interface could be successfully
223                             installed
224 
225 **/
226 EFI_STATUS
227 EFIAPI
228 MemoryDiscoveredPpiNotifyCallback (
229   IN EFI_PEI_SERVICES           **PeiServices,
230   IN EFI_PEI_NOTIFY_DESCRIPTOR  *NotifyDescriptor,
231   IN VOID                       *Ppi
232   );
233 
234 #endif
235