According to UEFI spec, iSCSI HBA must install an AIP instance with network boot information block. This patch updates UEFI iSCSI driver to check whether there are AIP instances installed by iSCSI HBA adapter and if yes, the UEFI iSCSI driver will return EFI_ABORTED in its driver binding Start(). Also the patch introduces a PCD PcdIScsiAIPNetworkBootPolicy for platform owner to define particular policy when the iSCSI HBA will survive and UEFI iSCSI will fail. The default policy is STOP_UEFI_ISCSI_IF_AIP_SUPPORT_OFFLOAD which means that when ISCSI HBA adapter installs an AIP and claims it supports an offload engine for iSCSI boot, the UEFI iSCSI driver will return EFI_ABORTED. The patch V2 adds a new value ALWAYS_USE_UEFI_ISCSI_AND_IGNORE_AIP to PCD PcdIScsiAIPNetworkBootPolicy. This allows the platform to avoid running into buggy IHV drivers that have issue with AIP. It is suggested by El-Haj-Mahmoud,Samer <samer.el-haj-mahmoud@hpe.com>. Cc: El-Haj-Mahmoud Samer <samer.el-haj-mahmoud@hpe.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ye Ting <ting.ye@intel.com> Reviewed-by: Fu siyuan <siyuan.fu@intel.com> Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com> Reviewed-by: El-Haj-Mahmoud Samer <samer.el-haj-mahmoud@hpe.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19367 6f19259b-4bc3-4df7-8a09-765794883524
135 lines
4.5 KiB
INI
135 lines
4.5 KiB
INI
## @file
|
|
# Client-side iSCSI service.
|
|
#
|
|
# The iSCSI driver provides iSCSI service in the preboot environment and supports
|
|
# booting over iSCSI.
|
|
#
|
|
# Copyright (c) 2004 - 2015, 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
|
|
# 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 = IScsiDxe
|
|
FILE_GUID = 86CDDF93-4872-4597-8AF9-A35AE4D3725F
|
|
MODULE_TYPE = UEFI_DRIVER
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = IScsiDriverEntryPoint
|
|
UNLOAD_IMAGE = IScsiUnload
|
|
MODULE_UNI_FILE = IScsiDxe.uni
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 IPF
|
|
#
|
|
# DRIVER_BINDING = gIScsiDriverBinding
|
|
# COMPONENT_NAME = gIScsiComponentName
|
|
# COMPONENT_NAME2 = gIScsiComponentName2
|
|
#
|
|
|
|
|
|
[Sources]
|
|
ComponentName.c
|
|
IScsiAuthenticationInfo.c
|
|
IScsiCHAP.h
|
|
IScsiCHAP.c
|
|
IScsiConfig.c
|
|
IScsiConfig.h
|
|
IScsiConfigNVDataStruc.h
|
|
IScsiConfigStrings.uni
|
|
IScsiConfigVfr.vfr
|
|
IScsiDhcp.c
|
|
IScsiDhcp.h
|
|
IScsiDhcp6.c
|
|
IScsiDhcp6.h
|
|
IScsiDriver.c
|
|
IScsiDriver.h
|
|
IScsiExtScsiPassThru.c
|
|
IScsiIbft.c
|
|
IScsiIbft.h
|
|
IScsiInitiatorName.c
|
|
IScsiImpl.h
|
|
IScsiMisc.c
|
|
IScsiMisc.h
|
|
IScsiProto.c
|
|
IScsiProto.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
CryptoPkg/CryptoPkg.dec
|
|
NetworkPkg/NetworkPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
BaseMemoryLib
|
|
DebugLib
|
|
DevicePathLib
|
|
HiiLib
|
|
MemoryAllocationLib
|
|
NetLib
|
|
TcpIoLib
|
|
PrintLib
|
|
UefiBootServicesTableLib
|
|
UefiDriverEntryPoint
|
|
UefiLib
|
|
UefiRuntimeServicesTableLib
|
|
UefiHiiServicesLib
|
|
BaseCryptLib
|
|
|
|
[Protocols]
|
|
gEfiAcpiTableProtocolGuid ## SOMETIMES_CONSUMES ## SystemTable
|
|
gEfiDriverBindingProtocolGuid ## SOMETIMES_PRODUCES
|
|
gEfiPciIoProtocolGuid ## SOMETIMES_CONSUMES
|
|
gEfiDhcp4ProtocolGuid ## TO_START
|
|
gEfiDhcp6ProtocolGuid ## TO_START
|
|
gEfiDhcp4ServiceBindingProtocolGuid ## TO_START
|
|
gEfiDhcp6ServiceBindingProtocolGuid ## TO_START
|
|
gEfiTcp4ProtocolGuid ## TO_START
|
|
gEfiTcp6ProtocolGuid ## TO_START
|
|
gEfiTcp4ServiceBindingProtocolGuid ## TO_START
|
|
gEfiTcp6ServiceBindingProtocolGuid ## TO_START
|
|
gEfiExtScsiPassThruProtocolGuid ## BY_START
|
|
gEfiHiiConfigAccessProtocolGuid ## PRODUCES
|
|
## TO_START
|
|
## PRODUCES
|
|
gEfiDevicePathProtocolGuid
|
|
## PRODUCES
|
|
## UNDEFINED # Variable
|
|
gEfiIScsiInitiatorNameProtocolGuid
|
|
## PRODUCES
|
|
gEfiAuthenticationInfoProtocolGuid
|
|
## CONSUMES
|
|
gEfiAdapterInformationProtocolGuid
|
|
|
|
[Guids]
|
|
gEfiEventExitBootServicesGuid ## SOMETIMES_CONSUMES ## Event
|
|
gEfiIfrTianoGuid ## SOMETIMES_PRODUCES ## UNDEFINED
|
|
gEfiAcpiTableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
|
gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
|
gEfiAcpi20TableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
|
gEfiAdapterInfoNetworkBootGuid ## SOMETIMES_CONSUMES ## UNDEFINED
|
|
|
|
## SOMETIMES_PRODUCES ## Variable:L"AttemptOrder"
|
|
## SOMETIMES_CONSUMES ## Variable:L"AttemptOrder"
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # HiiIsConfigHdrMatch mVendorStorageName
|
|
## SOMETIMES_PRODUCES ## UNDEFINED # HiiConstructConfigHdr mVendorStorageName
|
|
## SOMETIMES_PRODUCES ## UNDEFINED # HiiGetBrowserData mVendorStorageName
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # HiiSetBrowserData mVendorStorageName
|
|
## SOMETIMES_CONSUMES ## HII
|
|
gIScsiConfigGuid
|
|
|
|
[Pcd]
|
|
gEfiNetworkPkgTokenSpaceGuid.PcdIScsiAIPNetworkBootPolicy ## CONSUMES
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
IScsiDxeExtra.uni
|