2009-02-24 16:53:05 +01:00
|
|
|
/** @file
|
2009-07-09 14:02:01 +02:00
|
|
|
Platform BDS library definition. A platform can implement
|
|
|
|
instances to support platform-specific behavior.
|
2009-02-24 16:53:05 +01:00
|
|
|
|
2009-06-17 10:46:49 +02:00
|
|
|
Copyright (c) 2008 - 2009, Intel Corporation. <BR>
|
2009-02-24 16:53:05 +01:00
|
|
|
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>
|
2009-02-25 16:35:32 +01:00
|
|
|
#include <Library/GenericBdsLib.h>
|
2009-02-24 16:53:05 +01:00
|
|
|
|
|
|
|
/**
|
2009-07-09 14:02:01 +02:00
|
|
|
Platform Bds initialization. Includes the platform firmware vendor, revision
|
2009-02-24 16:53:05 +01:00
|
|
|
and so crc check.
|
|
|
|
|
|
|
|
**/
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
PlatformBdsInit (
|
2009-06-07 06:43:19 +02:00
|
|
|
VOID
|
2009-02-24 16:53:05 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
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 DriverOptionList The header of the driver option link list
|
|
|
|
@param BootOptionList The header of the boot option link list
|
|
|
|
|
|
|
|
**/
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
PlatformBdsPolicyBehavior (
|
|
|
|
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
|
2009-07-09 14:02:01 +02:00
|
|
|
is also a platform implementation, and can be customized by an IBV/OEM.
|
2009-02-24 16:53:05 +01:00
|
|
|
|
2009-07-09 14:02:01 +02:00
|
|
|
@param Option Pointer to Boot Option that successfully booted.
|
2009-02-24 16:53:05 +01:00
|
|
|
|
|
|
|
**/
|
|
|
|
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
|