mirror of https://github.com/acidanthera/audk.git
208 lines
6.5 KiB
C
208 lines
6.5 KiB
C
/*++
|
|
|
|
Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
|
|
|
|
This program and the accompanying materials are licensed and made available under
|
|
|
|
the terms and conditions of the BSD License that 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.
|
|
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
PlatformStatusCode.h
|
|
|
|
Abstract:
|
|
|
|
Contains Platform specific implementations required to use status codes.
|
|
|
|
--*/
|
|
|
|
#ifndef _PLATFORM_STATUS_CODE_H_
|
|
#define _PLATFORM_STATUS_CODE_H_
|
|
|
|
|
|
#define CONFIG_PORT0 0x4E
|
|
#define INDEX_PORT0 0x4E
|
|
#define DATA_PORT0 0x4F
|
|
#define PCI_IDX 0xCF8
|
|
#define PCI_DAT 0xCFC
|
|
|
|
#include "MonoStatusCode.h"
|
|
|
|
/*++
|
|
|
|
Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved
|
|
|
|
|
|
This program and the accompanying materials are licensed and made available under
|
|
|
|
the terms and conditions of the BSD License that 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.
|
|
|
|
|
|
|
|
This software and associated documentation (if any) is furnished
|
|
under a license and may only be used or copied in accordance
|
|
with the terms of the license. Except as permitted by such
|
|
license, no part of this software or documentation may be
|
|
reproduced, stored in a retrieval system, or transmitted in any
|
|
form or by any means without the express written consent of
|
|
Intel Corporation.
|
|
|
|
|
|
Module Name:
|
|
|
|
Port80StatusCodeLib.h
|
|
|
|
Abstract:
|
|
|
|
Lib to provide status code reporting via port 80.
|
|
|
|
--*/
|
|
|
|
#ifndef _PEI_PORT_80_STATUS_CODE_H_
|
|
#define _PEI_PORT_80_STATUS_CODE_H_
|
|
|
|
|
|
|
|
//
|
|
// Status code reporting function
|
|
//
|
|
EFI_STATUS
|
|
Port80ReportStatusCode (
|
|
IN CONST EFI_PEI_SERVICES **PeiServices,
|
|
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
IN EFI_STATUS_CODE_VALUE Value,
|
|
IN UINT32 Instance,
|
|
IN CONST EFI_GUID * CallerId,
|
|
IN CONST EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
);
|
|
|
|
#endif
|
|
|
|
/*++
|
|
|
|
Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved
|
|
|
|
|
|
This program and the accompanying materials are licensed and made available under
|
|
|
|
the terms and conditions of the BSD License that 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.
|
|
|
|
|
|
|
|
This software and associated documentation (if any) is furnished
|
|
under a license and may only be used or copied in accordance
|
|
with the terms of the license. Except as permitted by such
|
|
license, no part of this software or documentation may be
|
|
reproduced, stored in a retrieval system, or transmitted in any
|
|
form or by any means without the express written consent of
|
|
Intel Corporation.
|
|
|
|
|
|
Module Name:
|
|
|
|
SerialStatusCodeLib.h
|
|
|
|
Abstract:
|
|
|
|
Lib to provide Serial I/O status code reporting.
|
|
|
|
--*/
|
|
|
|
#ifndef _PEI_SERIAL_STATUS_CODE_LIB_H_
|
|
#define _PEI_SERIAL_STATUS_CODE_LIB_H_
|
|
|
|
|
|
#include <Guid/StatusCodeDataTypeId.h>
|
|
#include <Guid/StatusCodeDataTypeDebug.h>
|
|
#include <Library/ReportStatusCodeLib.h>
|
|
#include <Library/PrintLib.h>
|
|
#include <Library/BaseMemoryLib.h>
|
|
|
|
//
|
|
// Initialization function
|
|
//
|
|
VOID
|
|
SerialInitializeStatusCode (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Status code reporting function
|
|
//
|
|
EFI_STATUS
|
|
SerialReportStatusCode (
|
|
IN CONST EFI_PEI_SERVICES **PeiServices,
|
|
IN EFI_STATUS_CODE_TYPE CodeType,
|
|
IN EFI_STATUS_CODE_VALUE Value,
|
|
IN UINT32 Instance,
|
|
IN CONST EFI_GUID * CallerId,
|
|
IN CONST EFI_STATUS_CODE_DATA * Data OPTIONAL
|
|
);
|
|
|
|
#endif
|
|
|
|
extern EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi;
|
|
extern EFI_PEI_PPI_DESCRIPTOR mPpiListStatusCode;
|
|
#define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
|
|
#define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
|
|
#define STATUSCODE_PEIM_SIGNATURE EFI_SIGNATURE_32 ('p', 's', 't', 'c')
|
|
|
|
typedef struct {
|
|
UINT32 Signature;
|
|
EFI_FFS_FILE_HEADER *FfsHeader;
|
|
EFI_PEI_NOTIFY_DESCRIPTOR StatusCodeNotify;
|
|
} STATUSCODE_CALLBACK_STATE_INFORMATION;
|
|
|
|
#pragma pack(1)
|
|
typedef struct {
|
|
UINT16 Limit;
|
|
UINT32 Base;
|
|
} GDT_DSCRIPTOR;
|
|
#pragma pack()
|
|
|
|
#define STATUSCODE_PEIM_FROM_THIS(a) \
|
|
BASE_CR ( \
|
|
a, \
|
|
STATUSCODE_CALLBACK_STATE_INFORMATION, \
|
|
StatusCodeNotify \
|
|
)
|
|
|
|
VOID
|
|
EFIAPI
|
|
PlatformInitializeStatusCode (
|
|
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
|
IN CONST EFI_PEI_SERVICES **PeiServices
|
|
);
|
|
|
|
|
|
//
|
|
// Function declarations
|
|
//
|
|
/**
|
|
Install Firmware Volume Hob's once there is main memory
|
|
|
|
@param PeiServices General purpose services available to every PEIM.
|
|
@param NotifyDescriptor Not Used
|
|
@param Ppi Not Used
|
|
|
|
@retval Status EFI_SUCCESS if the interface could be successfully
|
|
installed
|
|
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
MemoryDiscoveredPpiNotifyCallback (
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
|
IN VOID *Ppi
|
|
);
|
|
|
|
#endif
|