Move library class GenericBdsLib and PlatformBdsLib to IntelFrameworkModulePkg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7657 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		
							
								
								
									
										1106
									
								
								IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1106
									
								
								IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										126
									
								
								IntelFrameworkModulePkg/Include/Library/PlatformBdsLib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								IntelFrameworkModulePkg/Include/Library/PlatformBdsLib.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
				
			|||||||
 | 
					/** @file
 | 
				
			||||||
 | 
					  Platform BDS library definition. Platform package can provide hook library
 | 
				
			||||||
 | 
					  instances to implement platform specific behavior.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2008, Intel Corporation. <BR>
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __PLATFORM_BDS_LIB_H_
 | 
				
			||||||
 | 
					#define __PLATFORM_BDS_LIB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <Protocol/Bds.h>
 | 
				
			||||||
 | 
					#include <Protocol/GenericMemoryTest.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Bds AP Context data
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#define EFI_BDS_ARCH_PROTOCOL_INSTANCE_SIGNATURE  SIGNATURE_32 ('B', 'd', 's', 'A')
 | 
				
			||||||
 | 
					typedef struct _EFI_BDS_ARCH_PROTOCOL_INSTANCE EFI_BDS_ARCH_PROTOCOL_INSTANCE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _EFI_BDS_ARCH_PROTOCOL_INSTANCE {
 | 
				
			||||||
 | 
					  UINTN                     Signature;
 | 
				
			||||||
 | 
					  EFI_HANDLE                Handle;
 | 
				
			||||||
 | 
					  EFI_BDS_ARCH_PROTOCOL     Bds;
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Save the current boot mode
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  EFI_BOOT_MODE             BootMode;
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Set true if boot with default settings
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  BOOLEAN                   DefaultBoot;
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// The system default timeout for choose the boot option
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  UINT16                    TimeoutDefault;
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  /// Memory Test Level
 | 
				
			||||||
 | 
					  ///
 | 
				
			||||||
 | 
					  EXTENDMEM_COVERAGE_LEVEL  MemoryTestLevel;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Platform Bds init. Include the platform firmware vendor, revision
 | 
				
			||||||
 | 
					  and so crc check.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  PrivateData             The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsInit (
 | 
				
			||||||
 | 
					  IN EFI_BDS_ARCH_PROTOCOL_INSTANCE  *PrivateData
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  The function will excute with as the platform policy, current policy
 | 
				
			||||||
 | 
					  is driven by boot mode. IBV/OEM can customize this code for their specific
 | 
				
			||||||
 | 
					  policy action.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  PrivateData             The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance
 | 
				
			||||||
 | 
					  @param  DriverOptionList        The header of the driver option link list
 | 
				
			||||||
 | 
					  @param  BootOptionList          The header of the boot option link list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsPolicyBehavior (
 | 
				
			||||||
 | 
					  IN EFI_BDS_ARCH_PROTOCOL_INSTANCE  *PrivateData,
 | 
				
			||||||
 | 
					  IN LIST_ENTRY                      *DriverOptionList,
 | 
				
			||||||
 | 
					  IN LIST_ENTRY                      *BootOptionList
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Hook point after a boot attempt fails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  Option                  Pointer to Boot Option that failed to boot.
 | 
				
			||||||
 | 
					  @param  Status                  Status returned from failed boot.
 | 
				
			||||||
 | 
					  @param  ExitData                Exit data returned from failed boot.
 | 
				
			||||||
 | 
					  @param  ExitDataSize            Exit data size returned from failed boot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsBootFail (
 | 
				
			||||||
 | 
					  IN  BDS_COMMON_OPTION  *Option,
 | 
				
			||||||
 | 
					  IN  EFI_STATUS         Status,
 | 
				
			||||||
 | 
					  IN  CHAR16             *ExitData,
 | 
				
			||||||
 | 
					  IN  UINTN              ExitDataSize
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Hook point after a boot attempt succeeds. We don't expect a boot option to
 | 
				
			||||||
 | 
					  return, so the UEFI 2.0 specification defines that you will default to an
 | 
				
			||||||
 | 
					  interactive mode and stop processing the BootOrder list in this case. This
 | 
				
			||||||
 | 
					  is alos a platform implementation and can be customized by IBV/OEM.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  Option                  Pointer to Boot Option that succeeded to boot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsBootSuccess (
 | 
				
			||||||
 | 
					  IN  BDS_COMMON_OPTION *Option
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  This function locks platform flash that is not allowed to be updated during normal boot path.
 | 
				
			||||||
 | 
					  The flash layout is platform specific.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @retval EFI_SUCCESS             The non-updatable flash areas.
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					EFI_STATUS
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsLockNonUpdatableFlash (
 | 
				
			||||||
 | 
					  VOID
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@@ -27,6 +27,12 @@
 | 
				
			|||||||
  PciIncompatibleDeviceSupportLib|Include/Library/PciIncompatibleDeviceSupportLib.h
 | 
					  PciIncompatibleDeviceSupportLib|Include/Library/PciIncompatibleDeviceSupportLib.h
 | 
				
			||||||
  OemHookStatusCodeLib|Include/Library/OemHookStatusCodeLib.h
 | 
					  OemHookStatusCodeLib|Include/Library/OemHookStatusCodeLib.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ##  @libraryclass  Platform BDS library definition about platform specific behavior.
 | 
				
			||||||
 | 
					  PlatformBdsLib|Include/Library/PlatformBdsLib.h
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  ##  @libraryclass  Generic BDS library definition, include the data structure and function.
 | 
				
			||||||
 | 
					  GenericBdsLib|Include/Library/GenericBdsLib.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Guids.common]
 | 
					[Guids.common]
 | 
				
			||||||
  gMemoryStatusCodeRecordGuid     = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }}
 | 
					  gMemoryStatusCodeRecordGuid     = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }}
 | 
				
			||||||
  gEfiDataHubStatusCodeRecordGuid = { 0xD083E94C, 0x6560, 0x42E4, { 0xB6, 0xD4, 0x2D, 0xF7, 0x5A, 0xDF, 0x6A, 0x2A }}
 | 
					  gEfiDataHubStatusCodeRecordGuid = { 0xD083E94C, 0x6560, 0x42E4, { 0xB6, 0xD4, 0x2D, 0xF7, 0x5A, 0xDF, 0x6A, 0x2A }}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,7 +63,7 @@
 | 
				
			|||||||
  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
 | 
					  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
 | 
				
			||||||
  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
 | 
					  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
 | 
				
			||||||
  ExtendedHiiLib|MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.inf
 | 
					  ExtendedHiiLib|MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.inf
 | 
				
			||||||
  PlatformBdsLib|MdeModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull.inf
 | 
					  PlatformBdsLib|IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull.inf
 | 
				
			||||||
  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
 | 
					  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
 | 
				
			||||||
  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
 | 
					  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
 | 
				
			||||||
  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
 | 
					  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
 | 
				
			||||||
@@ -215,6 +215,7 @@
 | 
				
			|||||||
  IntelFrameworkModulePkg/Library/BaseReportStatusCodeLib/BaseReportStatusCodeLib.inf
 | 
					  IntelFrameworkModulePkg/Library/BaseReportStatusCodeLib/BaseReportStatusCodeLib.inf
 | 
				
			||||||
  IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
 | 
					  IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
 | 
				
			||||||
  IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
 | 
					  IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
 | 
				
			||||||
 | 
					  IntelFrameworkModulePkg/Library/PlatformBdsLibNull/PlatformBdsLibNull.inf
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
 | 
					  IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
 | 
				
			||||||
  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
 | 
					  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@
 | 
				
			|||||||
  MdePkg/MdePkg.dec
 | 
					  MdePkg/MdePkg.dec
 | 
				
			||||||
  MdeModulePkg/MdeModulePkg.dec
 | 
					  MdeModulePkg/MdeModulePkg.dec
 | 
				
			||||||
  IntelFrameworkPkg/IntelFrameworkPkg.dec
 | 
					  IntelFrameworkPkg/IntelFrameworkPkg.dec
 | 
				
			||||||
 | 
					  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[LibraryClasses]
 | 
					[LibraryClasses]
 | 
				
			||||||
  DevicePathLib
 | 
					  DevicePathLib
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										188
									
								
								IntelFrameworkModulePkg/Library/PlatformBdsLibNull/BdsPlatform.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								IntelFrameworkModulePkg/Library/PlatformBdsLibNull/BdsPlatform.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,188 @@
 | 
				
			|||||||
 | 
					/** @file
 | 
				
			||||||
 | 
					  This file include all platform action which can be customized by IBV/OEM.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2004 - 2008, Intel Corporation. <BR>
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "BdsPlatform.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// BDS Platform Functions
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Platform Bds init. Include the platform firmware vendor, revision
 | 
				
			||||||
 | 
					  and so crc check.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  PrivateData             The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsInit (
 | 
				
			||||||
 | 
					  IN EFI_BDS_ARCH_PROTOCOL_INSTANCE  *PrivateData
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Connect the predefined platform default console device. Always try to find
 | 
				
			||||||
 | 
					  and enable the vga device if have.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param PlatformConsole          Predefined platform default console device array.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @retval EFI_SUCCESS             Success connect at least one ConIn and ConOut
 | 
				
			||||||
 | 
					                                  device, there must have one ConOut device is
 | 
				
			||||||
 | 
					                                  active vga device.
 | 
				
			||||||
 | 
					  @return Return the status of BdsLibConnectAllDefaultConsoles ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					EFI_STATUS
 | 
				
			||||||
 | 
					PlatformBdsConnectConsole (
 | 
				
			||||||
 | 
					  IN BDS_CONSOLE_CONNECT_ENTRY   *PlatformConsole
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return EFI_SUCCESS;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Connect with predefined platform connect sequence,
 | 
				
			||||||
 | 
					  the OEM/IBV can customize with their own connect sequence.
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					PlatformBdsConnectSequence (
 | 
				
			||||||
 | 
					  VOID
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Load the predefined driver option, OEM/IBV can customize this
 | 
				
			||||||
 | 
					  to load their own drivers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param BdsDriverLists  - The header of the driver option link list.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					PlatformBdsGetDriverOption (
 | 
				
			||||||
 | 
					  IN OUT LIST_ENTRY              *BdsDriverLists
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Perform the platform diagnostic, such like test memory. OEM/IBV also
 | 
				
			||||||
 | 
					  can customize this function to support specific platform diagnostic.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param MemoryTestLevel  The memory test intensive level
 | 
				
			||||||
 | 
					  @param QuietBoot        Indicate if need to enable the quiet boot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					PlatformBdsDiagnostics (
 | 
				
			||||||
 | 
					  IN EXTENDMEM_COVERAGE_LEVEL    MemoryTestLevel,
 | 
				
			||||||
 | 
					  IN BOOLEAN                     QuietBoot
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  The function will execute with as the platform policy, current policy
 | 
				
			||||||
 | 
					  is driven by boot mode. IBV/OEM can customize this code for their specific
 | 
				
			||||||
 | 
					  policy action.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  PrivateData             The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance
 | 
				
			||||||
 | 
					  @param  DriverOptionList        The header of the driver option link list
 | 
				
			||||||
 | 
					  @param  BootOptionList          The header of the boot option link list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsPolicyBehavior (
 | 
				
			||||||
 | 
					  IN EFI_BDS_ARCH_PROTOCOL_INSTANCE  *PrivateData,
 | 
				
			||||||
 | 
					  IN LIST_ENTRY                      *DriverOptionList,
 | 
				
			||||||
 | 
					  IN LIST_ENTRY                      *BootOptionList
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return ;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Hook point after a boot attempt succeeds. We don't expect a boot option to
 | 
				
			||||||
 | 
					  return, so the UEFI 2.0 specification defines that you will default to an
 | 
				
			||||||
 | 
					  interactive mode and stop processing the BootOrder list in this case. This
 | 
				
			||||||
 | 
					  is also a platform implementation and can be customized by IBV/OEM.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  Option                  Pointer to Boot Option that succeeded to boot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsBootSuccess (
 | 
				
			||||||
 | 
					  IN  BDS_COMMON_OPTION *Option
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  Hook point after a boot attempt fails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @param  Option                  Pointer to Boot Option that failed to boot.
 | 
				
			||||||
 | 
					  @param  Status                  Status returned from failed boot.
 | 
				
			||||||
 | 
					  @param  ExitData                Exit data returned from failed boot.
 | 
				
			||||||
 | 
					  @param  ExitDataSize            Exit data size returned from failed boot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					VOID
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsBootFail (
 | 
				
			||||||
 | 
					  IN  BDS_COMMON_OPTION  *Option,
 | 
				
			||||||
 | 
					  IN  EFI_STATUS         Status,
 | 
				
			||||||
 | 
					  IN  CHAR16             *ExitData,
 | 
				
			||||||
 | 
					  IN  UINTN              ExitDataSize
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  This function is remained for IBV/OEM to do some platform action,
 | 
				
			||||||
 | 
					  if there no console device can be connected.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @return EFI_SUCCESS      Direct return success now.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					EFI_STATUS
 | 
				
			||||||
 | 
					PlatformBdsNoConsoleAction (
 | 
				
			||||||
 | 
					  VOID
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return EFI_SUCCESS;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  This function locks platform flash that is not allowed to be updated during normal boot path.
 | 
				
			||||||
 | 
					  The flash layout is platform specific.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @retval EFI_SUCCESS             The non-updatable flash areas.
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					EFI_STATUS
 | 
				
			||||||
 | 
					EFIAPI
 | 
				
			||||||
 | 
					PlatformBdsLockNonUpdatableFlash (
 | 
				
			||||||
 | 
					  VOID
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return EFI_SUCCESS;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					/** @file
 | 
				
			||||||
 | 
					  Head file for BDS Platform specific code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2004 - 2008, Intel Corporation. <BR>
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _BDS_PLATFORM_H_
 | 
				
			||||||
 | 
					#define _BDS_PLATFORM_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <PiDxe.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <Library/DebugLib.h>
 | 
				
			||||||
 | 
					#include <Library/BaseMemoryLib.h>
 | 
				
			||||||
 | 
					#include <Library/UefiBootServicesTableLib.h>
 | 
				
			||||||
 | 
					#include <Library/MemoryAllocationLib.h>
 | 
				
			||||||
 | 
					#include <Library/BaseLib.h>
 | 
				
			||||||
 | 
					#include <Library/PcdLib.h>
 | 
				
			||||||
 | 
					#include <Library/GenericBdsLib.h>
 | 
				
			||||||
 | 
					#include <Library/PlatformBdsLib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // _BDS_PLATFORM_H
 | 
				
			||||||
@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#/** @file
 | 
				
			||||||
 | 
					#  
 | 
				
			||||||
 | 
					#  Provide NULL implementation for PlatformBdsLib library class interfaces which
 | 
				
			||||||
 | 
					#  should be implemented by OEM.
 | 
				
			||||||
 | 
					#  
 | 
				
			||||||
 | 
					#  Copyright (c) 2007 - 2008, Intel Corporation. <BR>
 | 
				
			||||||
 | 
					#  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]
 | 
				
			||||||
 | 
					  INF_VERSION                    = 0x00010005
 | 
				
			||||||
 | 
					  BASE_NAME                      = PlatformBdsLib
 | 
				
			||||||
 | 
					  FILE_GUID                      = 143B5044-7C1B-4904-9778-EA16F1F3D554
 | 
				
			||||||
 | 
					  MODULE_TYPE                    = DXE_DRIVER
 | 
				
			||||||
 | 
					  VERSION_STRING                 = 1.0
 | 
				
			||||||
 | 
					  LIBRARY_CLASS                  = PlatformBdsLib|DXE_DRIVER   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The following information is for reference only and not required by the build tools.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Sources.common]
 | 
				
			||||||
 | 
					  BdsPlatform.c
 | 
				
			||||||
 | 
					  PlatformData.c
 | 
				
			||||||
 | 
					  BdsPlatform.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Packages]
 | 
				
			||||||
 | 
					  MdePkg/MdePkg.dec
 | 
				
			||||||
 | 
					  MdeModulePkg/MdeModulePkg.dec
 | 
				
			||||||
 | 
					  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					[LibraryClasses]
 | 
				
			||||||
 | 
					  BaseLib
 | 
				
			||||||
 | 
					  MemoryAllocationLib
 | 
				
			||||||
 | 
					  UefiBootServicesTableLib
 | 
				
			||||||
 | 
					  BaseMemoryLib
 | 
				
			||||||
 | 
					  DebugLib
 | 
				
			||||||
 | 
					  PcdLib
 | 
				
			||||||
 | 
					  GenericBdsLib
 | 
				
			||||||
@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					/** @file
 | 
				
			||||||
 | 
					  Defined the platform specific device path which will be used by
 | 
				
			||||||
 | 
					  platform Bbd to perform the platform policy connect.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2004 - 2008, Intel Corporation. <BR>
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "BdsPlatform.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Predefined platform default time out value
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					UINT16                      gPlatformBootTimeOutDefault = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Platform specific keyboard device path
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Predefined platform default console device path
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					BDS_CONSOLE_CONNECT_ENTRY   gPlatformConsole[] = {
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    NULL,
 | 
				
			||||||
 | 
					    0
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Predefined platform specific driver option
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					EFI_DEVICE_PATH_PROTOCOL    *gPlatformDriverOption[] = { NULL };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// Predefined platform connect sequence
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					EFI_DEVICE_PATH_PROTOCOL    *gPlatformConnectSequence[] = { NULL };
 | 
				
			||||||
@@ -88,6 +88,7 @@
 | 
				
			|||||||
  MdePkg/MdePkg.dec
 | 
					  MdePkg/MdePkg.dec
 | 
				
			||||||
  MdeModulePkg/MdeModulePkg.dec
 | 
					  MdeModulePkg/MdeModulePkg.dec
 | 
				
			||||||
  IntelFrameworkPkg/IntelFrameworkPkg.dec
 | 
					  IntelFrameworkPkg/IntelFrameworkPkg.dec
 | 
				
			||||||
 | 
					  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
[LibraryClasses]
 | 
					[LibraryClasses]
 | 
				
			||||||
  DevicePathLib
 | 
					  DevicePathLib
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user