From a9102619d488c92947605380f00c10e4651f4dc6 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Tue, 26 Jun 2007 08:14:44 +0000 Subject: [PATCH] 1. Create Intel Framework Module Package directory 2. Complete the public inclusion files git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2746 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Include/Guid/MemoryStatusCodeRecord.h | 54 +++++ .../Include/Guid/PciHotplugDevice.h | 30 +++ .../Include/Guid/PciOptionRomTable.h | 47 ++++ .../Include/Guid/StatusCode.h | 33 +++ .../Include/Library/OemHookStatusCodeLib.h | 73 ++++++ .../Library/PciIncompatibleDeviceSupportLib.h | 134 +++++++++++ .../Include/Protocol/IsaAcpi.h | 177 ++++++++++++++ .../Include/Protocol/PciHotPlugInit.h | 165 +++++++++++++ .../Include/Protocol/PciHotPlugRequest.h | 54 +++++ .../Include/Protocol/VgaMiniPort.h | 72 ++++++ .../IntelFrameworkModulePkg.dec | 109 +++++++++ .../IntelFrameworkModulePkg.nspd | 227 ++++++++++++++++++ 12 files changed, 1175 insertions(+) create mode 100644 IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h create mode 100644 IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h create mode 100644 IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h create mode 100644 IntelFrameworkModulePkg/Include/Guid/StatusCode.h create mode 100644 IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h create mode 100644 IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h create mode 100644 IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h create mode 100644 IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h create mode 100644 IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h create mode 100644 IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h create mode 100644 IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec create mode 100644 IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd diff --git a/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h b/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h new file mode 100644 index 0000000000..fb80d1954b --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h @@ -0,0 +1,54 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + MemoryStatusCodeRecord.h + +Abstract: + + GUID used to identify status code records HOB that originate from the PEI status code + +--*/ + +#ifndef __MEMORY_STATUS_CODE_RECORD_H__ +#define __MEMORY_STATUS_CODE_RECORD_H__ + +#define MEMORY_STATUS_CODE_RECORD_GUID \ + { \ + 0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \ + } + +/** + Memory status code records packet structure : + +---------------+----------+----------+-----+----------+-----+----------+ + | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m | + +---------------+----------+----------+-----+----------+-----+----------+ + ^ ^ ^ + +--------- RecordIndex -----------+ | + +---------------- MaxRecordsNumber----------------------+ +**/ +typedef struct { + UINT16 PacketIndex; // Index of the Packet. + UINT16 RecordIndex; // Index of record in the packet. + UINT32 MaxRecordsNumber; // Max number of records in the packet. +} MEMORY_STATUSCODE_PACKET_HEADER; + +typedef struct { + EFI_STATUS_CODE_TYPE CodeType; + EFI_STATUS_CODE_VALUE Value; + UINT32 Instance; +} MEMORY_STATUSCODE_RECORD; + + +extern EFI_GUID gMemoryStatusCodeRecordGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h b/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h new file mode 100644 index 0000000000..3d750cb854 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h @@ -0,0 +1,30 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + PciHotplugDevice.h + +Abstract: + + GUIDs used to indicate the device is Pccard hotplug device + +--*/ + +#ifndef __PCI_HOTPLUG_DEVICE_GUID_H_ +#define __PCI_HOTPLUG_DEVICE_GUID_H_ + +#define EFI_PCI_HOTPLUG_DEVICE_GUID \ + { 0x0b280816, 0x52e7, 0x4e51, {0xaa, 0x57, 0x11, 0xbd, 0x41, 0xcb, 0xef, 0xc3 } } + +extern EFI_GUID gEfiPciHotplugDeviceGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h b/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h new file mode 100644 index 0000000000..0ba44dbed4 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h @@ -0,0 +1,47 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + PciOptionRomTable.h + +Abstract: + + GUID and data structure used to describe the list of PCI Option ROMs present in a system. + +--*/ + +#ifndef __PCI_OPTION_ROM_TABLE_GUID_H_ +#define __PCI_OPTION_ROM_TABLE_GUID_H_ + +#define EFI_PCI_OPTION_ROM_TABLE_GUID \ + { 0x7462660f, 0x1cbd, 0x48da, {0xad, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1c } } + +extern EFI_GUID gEfiPciOptionRomTableGuid; + +typedef struct { + EFI_PHYSICAL_ADDRESS RomAddress; + EFI_MEMORY_TYPE MemoryType; + UINT32 RomLength; + UINT32 Seg; + UINT8 Bus; + UINT8 Dev; + UINT8 Func; + BOOLEAN ExecutedLegacyBiosImage; + BOOLEAN DontLoadEfiRom; +} EFI_PCI_OPTION_ROM_DESCRIPTOR; + +typedef struct { + UINT64 PciOptionRomCount; + EFI_PCI_OPTION_ROM_DESCRIPTOR *PciOptionRomDescriptors; +} EFI_PCI_OPTION_ROM_TABLE; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Guid/StatusCode.h b/IntelFrameworkModulePkg/Include/Guid/StatusCode.h new file mode 100644 index 0000000000..8792c042dd --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Guid/StatusCode.h @@ -0,0 +1,33 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + StatusCode.h + +Abstract: + + GUID used to identify Data Hub records that originate from the Tiano + ReportStatusCode API. + +--*/ + +#ifndef __STATUS_CODE_H__ +#define __STATUS_CODE_H__ + +#define EFI_STATUS_CODE_GUID \ + { \ + 0xd083e94c, 0x6560, 0x42e4, {0xb6, 0xd4, 0x2d, 0xf7, 0x5a, 0xdf, 0x6a, 0x2a } \ + } + +extern EFI_GUID gEfiStatusCodeGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h b/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h new file mode 100644 index 0000000000..533df317ff --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h @@ -0,0 +1,73 @@ + +/** @file + OEM hook status code library functions with no library constructor/destructor + + Copyright (c) 2006, 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 + which 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: OemHookStatusCodeLib.h + +**/ + +#ifndef __OEM_HOOK_STATUSCODE_LIB__ +#define __OEM_HOOK_STATUSCODE_LIB__ + +/** + + Initialize OEM status code device . + + + @return Status of initialization of OEM status code device. + +**/ +EFI_STATUS +EFIAPI +OemHookStatusCodeInitialize ( + VOID + ); + +/** + Report status code to OEM device. + + @param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below. + + @param Value Describes the current status of a hardware or software entity. + This included information about the class and subclass that is used to classify the entity + as well as an operation. For progress codes, the operation is the current activity. + For error codes, it is the exception. For debug codes, it is not defined at this time. + Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below. + Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification. + + @param Instance The enumeration of a hardware or software entity within the system. + A system may contain multiple entities that match a class/subclass pairing. + The instance differentiates between them. An instance of 0 indicates that instance information is unavailable, + not meaningful, or not relevant. Valid instance numbers start with 1. + + + @param CallerId This optional parameter may be used to identify the caller. + This parameter allows the status code driver to apply different rules to different callers. + Type EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification. + + + @param Data This optional parameter may be used to pass additional data + + @return The function always return EFI_SUCCESS. + +**/ +EFI_STATUS +EFIAPI +OemHookStatusCodeReport ( + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN EFI_GUID *CallerId, OPTIONAL + IN EFI_STATUS_CODE_DATA *Data OPTIONAL + ); + +#endif diff --git a/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h new file mode 100644 index 0000000000..527a704042 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h @@ -0,0 +1,134 @@ +/** @file + PCI Incompatible device support Libary. + +Copyright (c) 2007 Intel Corporation. All rights reserved.
+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. + +**/ + +#define PCI_REGISTER_READ 0xfffffffffffffff1ULL +#define PCI_REGISTER_WRITE 0xfffffffffffffff2ULL +#define VALUE_NOCARE 0xffffffffffffffffULL + +// +// PCI device device information +// +typedef struct { + UINT64 VendorID; + UINT64 DeviceID; + UINT64 RevisionID; + UINT64 SubsystemVendorID; + UINT64 SubsystemID; +} EFI_PCI_DEVICE_INFO; + + +// +// store hardcode value of resgister +// +typedef struct { + UINT64 AndValue; + UINT64 OrValue; +} EFI_PCI_REGISTER_VALUE_DATA; + +// +// store access width information +// +typedef struct { + UINT64 StartOffset; + UINT64 EndOffset; + UINT64 Width; +} EFI_PCI_REGISTER_ACCESS_DATA; + + +// +// ACPI resource descriptor +// +typedef struct { + UINT64 ResType; + UINT64 GenFlag; + UINT64 SpecificFlag; + UINT64 AddrSpaceGranularity; + UINT64 AddrRangeMin; + UINT64 AddrRangeMax; + UINT64 AddrTranslationOffset; + UINT64 AddrLen; +} EFI_PCI_RESOUCE_DESCRIPTOR; + +/** + Checks the incompatible device list for ACPI resource update and return + the configuration. + + This function searches the incompatible device list according to request + information. If the PCI device belongs to the devices list, corresponding + configuration informtion will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to PCI device information. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciResourceUpdateCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + OUT VOID *Configuration + ); + +/** + Checks the incompatible device list and return configuration register mask values. + + This function searches the incompatible device list according to request + information. If the PCI device belongs to the devices list, corresponding + configuration informtion will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to EFI_PCI_DEVICE_INFO. + @param AccessType Access Type, READ or WRITE. + @param Offset The address within the PCI configuration space. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciRegisterUpdateCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + IN UINT64 AccessType, + IN UINT64 Offset, + OUT VOID *Configuration + ); + +/** + Checks the incompatible device list for access width incompatibility and + return the configuration + + This function searches the incompatible device list for access width + incompatibility according to request information. If the PCI device + belongs to the devices list, corresponding configuration informtion + will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to PCI device information. + @param AccessType Access type, READ or WRITE. + @param Offset The address within the PCI configuration space. + @param AccessWidth Access width needs to check incompatibility. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciRegisterAccessCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + IN UINT64 AccessType, + IN UINT64 Offset, + IN UINT64 AccessWidth, + OUT VOID *Configuration + ); diff --git a/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h new file mode 100644 index 0000000000..8e7402d667 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h @@ -0,0 +1,177 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + IsaAcpi.h + +Abstract: + + EFI ISA Acpi Protocol + +Revision History + +--*/ + +#ifndef __ISA_ACPI_H_ +#define __ISA_ACPI_H_ + +#define EFI_ISA_ACPI_PROTOCOL_GUID \ + { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } } + +typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL; + +// +// Resource Attribute definition +// +#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01 +#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02 +#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04 +#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08 + +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03 + +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A 0x01 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B 0x02 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F 0x03 +#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE 0x04 +#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD 0x08 +#define EFI_ISA_ACPI_DMA_BUS_MASTER 0x10 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x20 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x40 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x80 + +#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03 + +#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT 0x00 +#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT 0x01 +#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT 0x02 +#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04 +#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08 +#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10 +#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20 + +#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01 +#define EFI_ISA_ACPI_IO_DECODE_16_BITS 0x02 + +// +// Resource List definition: +// at first, the resource was defined as below +// but in the future, it will be defined again that follow ACPI spec: ACPI resource type +// so that, in this driver, we can interpret the ACPI table and get the ISA device information. +// + +typedef enum { + EfiIsaAcpiResourceEndOfList, + EfiIsaAcpiResourceIo, + EfiIsaAcpiResourceMemory, + EfiIsaAcpiResourceDma, + EfiIsaAcpiResourceInterrupt +} EFI_ISA_ACPI_RESOURCE_TYPE; + +typedef struct { + EFI_ISA_ACPI_RESOURCE_TYPE Type; + UINT32 Attribute; + UINT32 StartRange; + UINT32 EndRange; +} EFI_ISA_ACPI_RESOURCE; + +typedef struct { + UINT32 HID; + UINT32 UID; +} EFI_ISA_ACPI_DEVICE_ID; + +typedef struct { + EFI_ISA_ACPI_DEVICE_ID Device; + EFI_ISA_ACPI_RESOURCE *ResourceItem; +} EFI_ISA_ACPI_RESOURCE_LIST; + +// +// Prototypes for the ISA ACPI Protocol +// +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + OUT EFI_ISA_ACPI_DEVICE_ID **Device + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN BOOLEAN OnOff + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_SET_RESOURCE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN BOOLEAN Enable + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) ( + IN EFI_ISA_ACPI_PROTOCOL *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) ( + IN EFI_ISA_ACPI_PROTOCOL *This + ); + +// +// Interface structure for the ISA ACPI Protocol +// +struct _EFI_ISA_ACPI_PROTOCOL { + EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate; + EFI_ISA_ACPI_SET_DEVICE_POWER SetPower; + EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource; + EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource; + EFI_ISA_ACPI_SET_RESOURCE SetResource; + EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice; + EFI_ISA_ACPI_INIT_DEVICE InitDevice; + EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit; +}; + +extern EFI_GUID gEfiIsaAcpiProtocolGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h new file mode 100644 index 0000000000..342d5b2aaf --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h @@ -0,0 +1,165 @@ +/** @file + This file declares EFI PCI Hot Plug Init Protocol + + Copyright (c) 2006, 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 + which 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: PciHotPlugInit.h + + @par Revision Reference: + This protocol is defined in Framework of EFI Hot Plug Pci Initialization Protocol Spec + Version 0.9 + +**/ + +#ifndef __EFI_PCI_HOT_PLUG_INIT_H_ +#define __EFI_PCI_HOT_PLUG_INIT_H_ + +// +// Global ID for the PCI Hot Plug Protocol +// +#define EFI_PCI_HOT_PLUG_INIT_PROTOCOL_GUID \ + { 0xaa0e8bc1, 0xdabc, 0x46b0, {0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea } } + + +typedef struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL EFI_PCI_HOT_PLUG_INIT_PROTOCOL; + +#define EFI_HPC_STATE_INITIALIZED 0x01 +#define EFI_HPC_STATE_ENABLED 0x02 + +typedef UINT16 EFI_HPC_STATE; + + +typedef struct{ + EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath; + EFI_DEVICE_PATH_PROTOCOL *HpbDevicePath; +} EFI_HPC_LOCATION; + + +typedef enum{ + EfiPaddingPciBus, + EfiPaddingPciRootBridge +} EFI_HPC_PADDING_ATTRIBUTES; + +/** + Returns a list of root Hot Plug Controllers (HPCs) that require initialization + during the boot process. + + @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance. + @param HpcCount The number of root HPCs that were returned. + @param HpcList The list of root HPCs. HpcCount defines the number of + elements in this list. + + @retval EFI_SUCCESS HpcList was returned. + @retval EFI_OUT_OF_RESOURCES HpcList was not returned due to insufficient resources. + @retval EFI_INVALID_PARAMETER HpcCount is NULL or HpcList is NULL. + +**/ +typedef +EFI_STATUS +(EFIAPI *EFI_GET_ROOT_HPC_LIST) ( + IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This, + OUT UINTN *HpcCount, + OUT EFI_HPC_LOCATION **HpcList +); + +/** + Initializes one root Hot Plug Controller (HPC). This process may causes + initialization of its subordinate buses. + + @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance. + @param HpcDevicePath The device path to the HPC that is being initialized. + @param HpcPciAddress The address of the HPC function on the PCI bus. + @param Event The event that should be signaled when the HPC initialization + is complete. + @param HpcState The state of the HPC hardware. + + @retval EFI_SUCCESS If Event is NULL, the specific HPC was successfully + initialized. If Event is not NULL, Event will be signaled at a later time + when initialization is complete. + @retval EFI_UNSUPPORTED This instance of EFI_PCI_HOT_PLUG_INIT_PROTOCOL + does not support the specified HPC. + @retval EFI_OUT_OF_RESOURCES Initialization failed due to insufficient + resources. + @retval EFI_INVALID_PARAMETER HpcState is NULL. + +**/ +typedef +EFI_STATUS +(EFIAPI *EFI_INITIALIZE_ROOT_HPC) ( + IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This, + IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath, + IN UINT64 HpcPciAddress, + IN EFI_EVENT Event, OPTIONAL + OUT EFI_HPC_STATE *HpcState +); + +/** + Returns the resource padding that is required by the PCI bus that is controlled + by the specified Hot Plug Controller (HPC). + + @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance. + @param HpcDevicePath The device path to the HPC. + @param HpcPciAddress The address of the HPC function on the PCI bus. + @param HpcState The state of the HPC hardware. + @param Padding The amount of resource padding that is required by the + PCI bus under the control of the specified HPC. + @param Attributes Describes how padding is accounted for. The padding + is returned in the form of ACPI 2.0 resource descriptors. + + @retval EFI_SUCCESS The resource padding was successfully returned. + @retval EFI_UNSUPPORTED This instance of the EFI_PCI_HOT_PLUG_INIT_PROTOCOL + does not support the specified HPC. + @retval EFI_NOT_READY This function was called before HPC initialization is complete. + @retval EFI_INVALID_PARAMETER HpcState or Padding or Attributes is NULL. + @retval EFI_OUT_OF_RESOURCES ACPI 2.0 resource descriptors for Padding + cannot be allocated due to insufficient resources. + +**/ +typedef +EFI_STATUS +(EFIAPI *EFI_GET_PCI_HOT_PLUG_PADDING) ( + IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This, + IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath, + IN UINT64 HpcPciAddress, + OUT EFI_HPC_STATE *HpcState, + OUT VOID **Padding, + OUT EFI_HPC_PADDING_ATTRIBUTES *Attributes +); + + +// +// Prototypes for the PCI Hot Plug Init Protocol +// + +/** + @par Protocol Description: + This protocol provides the necessary functionality to initialize the + Hot Plug Controllers (HPCs) and the buses that they control. This protocol + also provides information regarding resource padding. + + @param GetRootHpcList + Returns a list of root HPCs and the buses that they control. + + @param InitializeRootHpc + Initializes the specified root HPC. + + @param GetResourcePadding + Returns the resource padding that is required by the HPC. + +**/ +struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL { + EFI_GET_ROOT_HPC_LIST GetRootHpcList; + EFI_INITIALIZE_ROOT_HPC InitializeRootHpc; + EFI_GET_PCI_HOT_PLUG_PADDING GetResourcePadding; +}; + +extern EFI_GUID gEfiPciHotPlugInitProtocolGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h new file mode 100644 index 0000000000..0aa641e3c0 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h @@ -0,0 +1,54 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + PciHotPlugRequest.h + +Abstract: + + + +--*/ + +#ifndef __PCI_HOTPLUG_REQUEST_H_ +#define __PCI_HOTPLUG_REQUEST_H_ + +#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \ +{0x19cb87ab,0x2cb9,{0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d}} + +typedef enum { + EfiPciHotPlugRequestAdd, + EfiPciHotplugRequestRemove +} EFI_PCI_HOTPLUG_OPERATION; + +typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL; + +typedef +EFI_STATUS +(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) ( + IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This, + IN EFI_PCI_HOTPLUG_OPERATION Operation, + IN EFI_HANDLE Controller, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL, + IN OUT UINT8 *NumberOfChildren, + IN OUT EFI_HANDLE *ChildHandleBuffer +); + + + +struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL { + EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify; +}; + +extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid; + +#endif diff --git a/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h new file mode 100644 index 0000000000..b20a3afb4d --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h @@ -0,0 +1,72 @@ +/*++ + +Copyright (c) 2006, 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 +which 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: + + VgaMiniPort.h + +Abstract: + + Vga Mini port binding for a VGA controller + +Revision History + +--*/ + +#ifndef __VGA_MINI_PORT_H_ +#define __VGA_MINI_PORT_H_ + +#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \ + { \ + 0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \ + } + +typedef struct _EFI_VGA_MINI_PORT_PROTOCOL EFI_VGA_MINI_PORT_PROTOCOL; + +typedef +EFI_STATUS +(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE) ( + IN EFI_VGA_MINI_PORT_PROTOCOL * This, + IN UINTN ModeNumber + ); + +/*++ + + Routine Description: + Sets the text display mode of a VGA controller + + Arguments: + This - Protocol instance pointer. + Mode - Mode number. 0 - 80x25 1-80x50 + + Returns: + EFI_SUCCESS - The mode was set + EFI_DEVICE_ERROR - The device is not functioning properly. + +--*/ +struct _EFI_VGA_MINI_PORT_PROTOCOL { + EFI_VGA_MINI_PORT_SET_MODE SetMode; + + UINT64 VgaMemoryOffset; + UINT64 CrtcAddressRegisterOffset; + UINT64 CrtcDataRegisterOffset; + + UINT8 VgaMemoryBar; + UINT8 CrtcAddressRegisterBar; + UINT8 CrtcDataRegisterBar; + + UINT8 MaxMode; +}; + +extern EFI_GUID gEfiVgaMiniPortProtocolGuid; + +#endif diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec new file mode 100644 index 0000000000..71a2bc8f15 --- /dev/null +++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec @@ -0,0 +1,109 @@ +#/** @file +# Intel Framework Module Package Reference Implementations +# +# This Module provides standard reference information for EFI/Tiano implementations. +# Copyright (c) 2007, 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 which 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. +# +#**/ + + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ + +[Defines] + DEC_SPECIFICATION = 0x00010005 + PACKAGE_NAME = IntelFrameworkModulePkg + PACKAGE_GUID = 88894582-7553-4822-B484-624E24B6DECF + PACKAGE_VERSION = 0.1 + + +################################################################################ +# +# Library Class Header section - list of Library Class header files that are +# provided by this package. +# +################################################################################ +[LibraryClass.common] + PciIncompatibleDeviceSupportLib|Include/Library/PciIncompatibleDeviceSupportLib.h + OemHookStatusCodeLib|Include/Library/OemHookStatusCodeLib.h + + + +################################################################################ +# +# Global Guid Definition section - list of Global Guid C Name Data Structures +# that are provided by this package. +# +################################################################################ +[Guids.common] + gEfiIntelFrameworkModulePkgTokenSpaceGuid = { 0xD3705011, 0xBC19, 0x4af7, { 0xBE, 0x16, 0xF6, 0x80, 0x30, 0x37, 0x8C, 0x15 }} + gEfiPciHotplugDeviceGuid = { 0x0B280816, 0x52E7, 0x4E51, { 0xAA, 0x57, 0x11, 0xBD, 0x41, 0xCB, 0xEF, 0xC3 }} + gEfiPciOptionRomTableGuid = { 0x7462660F, 0x1CBD, 0x48DA, { 0xAD, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1C }} + gEfiStatusCodeGuid = { 0xD083E94C, 0x6560, 0x42E4, { 0xB6, 0xD4, 0x2D, 0xF7, 0x5A, 0xDF, 0x6A, 0x2A }} + gMemoryStatusCodeRecordGuid = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }} + + + + +################################################################################ +# +# Global Protocols Definition section - list of Global Protocols C Name Data +# Structures that are provided by this package. +# +################################################################################ +[Protocols.common] + gEfiIsaAcpiProtocolGuid = { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 }} + gEfiVgaMiniPortProtocolGuid = { 0xc7735a2f, 0x88f5, 0x4882, { 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 }} + gEfiPciHotPlugInitProtocolGuid = { 0xAA0E8BC1, 0xDABC, 0x46B0, { 0xA8, 0x44, 0x37, 0xB8, 0x16, 0x9B, 0x2B, 0xEA }} + gEfiPciHotPlugRequestProtocolGuid = { 0x19CB87AB, 0x2CB9, 0x4665, { 0x83, 0x60, 0xDD, 0xCF, 0x60, 0x54, 0xF7, 0x9D }} + + + + +################################################################################ +# +# PCD Declarations section - list of all PCDs Declared by this Package +# Only this package should be providing the +# declaration, other packages should not. +# +################################################################################ + +[PcdDynamic.common] + PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1 + PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4 + +[PcdFeatureFlag.common] + PcdStatusCodeUseSerial|0x00010022|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseMemory|0x00010023|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseOEM|0x00010024|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseEfiSerial|0x00010026|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseHardSerial|0x00010027|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseRuntimeMemory|0x00010028|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeUseDataHub|0x00010029|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeReplayInSerial|0x0001002a|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeReplayInRuntimeMemory|0x0001002b|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeReplayInDataHub|0x0001002c|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdStatusCodeReplayInOEM|0x0001002d|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdPciIsaEnable|0x00010039|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdPciVgaEnable|0x0001003a|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdPciBusHotplugDeviceSupport|0x0001003d|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + +[PcdFixedAtBuild.common] + PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1 + PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4 + +[PcdPatchableInModule.common] + PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1 + PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4 + + diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd new file mode 100644 index 0000000000..079ed72a5d --- /dev/null +++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd @@ -0,0 +1,227 @@ + + + + IntelFrameworkModulePkg + 88894582-7553-4822-B484-624E24B6DECF + 0.1 + Intel Framework Module Package Reference Implementations + This Module provides standard reference information for EFI/Tiano implementations. + Copyright (c) 2007, 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 which 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. + FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 + + + false + false + + + + Include/Library/OemHookStatusCodeLib.h + + + + Include/Library/PciIncompatibleDeviceSupportLib.h + This library includes the PCI incompatible devices list. + + + + + gMemoryStatusCodeRecordGuid + 060CC026-4C0D-4DDA-8F41-595FEF00A502 + GUID used to identify status code records HOB that originate from the PEI status code. + + + gEfiStatusCodeGuid + D083E94C-6560-42E4-B6D4-2DF75ADF6A2A + GUID used to identify Data Hub records. + + + gEfiPciOptionRomTableGuid + 7462660F-1CBD-48DA-AD11-91717913831C + GUID and data structure used to describe the list of PCI Option ROMs present in a system. + + + gEfiPciHotplugDeviceGuid + 0B280816-52E7-4E51-AA57-11BD41CBEFC3 + GUIDs used to indicate the device is Pccard hotplug device. + + + gEfiIntelFrameworkModulePkgTokenSpaceGuid + D3705011-BC19-4af7-BE16-F68030378C15 + All PCD define in IntelFrameworkModulePkg is in this token space scope. + + + + + gEfiPciHotPlugRequestProtocolGuid + 19CB87AB-2CB9-4665-8360-DDCF6054F79D + Provide Hot Plug Support by PciBus driver. PciBus driver is notified by the Protocol caller to start Hot Plug device. + + + gEfiPciHotPlugInitProtocolGuid + AA0E8BC1-DABC-46B0-A844-37B8169B2BEA + Provide platform specific Hot Plug Support to PciBus driver. PciBus driver consumes this Protocol to get platform specific information. + + + gEfiVgaMiniPortProtocolGuid + c7735a2f-88f5-4882-ae63-faac8c8b86b3 + Provide the text display mode base a VGA controller. + + + gEfiIsaAcpiProtocolGuid + 64a892dc-5561-4536-92c7-799bfc183355 + Provide interface to manage the ISA device resource. + + + + + PcdStatusCodeUseSerial + 0x00010022 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + This feature flag can be used to enable or disable report staus code to serial I/O. Disable it can reduce the size of final image generated. + + + PcdStatusCodeUseMemory + 0x00010023 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + This feature flag can be used to enable or disable save statuc code in GUID'ed HOB. Disable it can reduce the size of final image generated. + + + PcdStatusCodeUseOEM + 0x00010024 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + This feature flag can be used to enable or disable send status code to OEM device. Disable it can reduce the size of final image generated. + + + PcdStatusCodeMemorySize + 0x00010025 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + UINT16 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 1 + kbytes size of GUID'ed HOB, if the GUID'ed HOB is full, create new GUID'ed HOB with this size. + + + PcdStatusCodeUseEfiSerial + 0x00010026 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to switch on/off report status code through serial DXE. + + + PcdStatusCodeUseHardSerial + 0x00010027 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to switch on/off report status code to serial device. + + + PcdStatusCodeUseRuntimeMemory + 0x00010028 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to switch on/off save status code in runtime memory. + + + PcdStatusCodeUseDataHub + 0x00010029 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to switch on/off log status code in data hub. + + + PcdStatusCodeReplayInSerial + 0x0001002a + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial. + + + PcdStatusCodeReplayInRuntimeMemory + 0x0001002b + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial. + + + PcdStatusCodeReplayInDataHub + 0x0001002c + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial. + + + PcdStatusCodeReplayInOEM + 0x0001002d + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial. + + + PcdStatusCodeRuntimeMemorySize + 0x0001002e + gEfiIntelFrameworkModulePkgTokenSpaceGuid + UINT16 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 4 + kbytes size of runtime memory. + + + PcdPciIsaEnable + 0x00010039 + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + This is a switch to enable ISA + + + PcdPciVgaEnable + 0x0001003a + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Whether VGA decoding is enabled on this platform so we should avoid those aliased resources + + + PcdPciBusHotplugDeviceSupport + 0x0001003d + gEfiIntelFrameworkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + If TRUE, the PCI bus driver will support hot plug device. If not hot plug device is supported, this feature flag can be set to FALSE to save size. + + + \ No newline at end of file -- 2.39.2