NetworkPkg: Update iSCSI driver to check existing AIP instances

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
This commit is contained in:
Ye Ting
2015-12-18 06:31:31 +00:00
committed by tye1
parent fbaab71534
commit 8873b174c7
6 changed files with 181 additions and 3 deletions

View File

@@ -29,6 +29,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#define IP_MODE_AUTOCONFIG_IP4 3
#define IP_MODE_AUTOCONFIG_IP6 4
#define ALWAYS_USE_UEFI_ISCSI_AND_IGNORE_AIP 0x00
#define STOP_UEFI_ISCSI_IF_HBA_INSTALL_AIP 0x01
#define STOP_UEFI_ISCSI_IF_AIP_SUPPORT_IP4 0x02
#define STOP_UEFI_ISCSI_IF_AIP_SUPPORT_IP6 0x04
#define STOP_UEFI_ISCSI_IF_AIP_SUPPORT_OFFLOAD 0x08
#define STOP_UEFI_ISCSI_IF_AIP_SUPPORT_MPIO 0x10
#define STOP_UEFI_ISCSI_IF_AIP_CONFIGURED_IP4 0x20
#define STOP_UEFI_ISCSI_IF_AIP_CONFIGURED_IP6 0x40
extern EFI_COMPONENT_NAME2_PROTOCOL gIScsiComponentName2;
extern EFI_COMPONENT_NAME_PROTOCOL gIScsiComponentName;