Update AtapiPassThru driver in Option ROM package to support to produce EFI Driver supported EFI version protocol, which is required for EFI drivers that are on PCI and other plug in cards.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4320 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2007-11-22 07:15:08 +00:00
parent e89b6bfc01
commit 4cc9af6c58
6 changed files with 50 additions and 3 deletions

View File

@ -3390,5 +3390,18 @@ InitializeAtapiPassThru(
); );
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
//
// Install EFI Driver Supported EFI Version Protocol required for
// EFI drivers that are on PCI and other plug in cards.
//
gAtapiScsiPassThruDriverSupportedEfiVersion.FirmwareVersion = PcdGet32 (PcdDriverSupportedEfiVersion);
Status = gBS->InstallMultipleProtocolInterfaces (
&ImageHandle,
&gEfiDriverSupportedEfiVersionProtocolGuid,
&gAtapiScsiPassThruDriverSupportedEfiVersion,
NULL
);
ASSERT_EFI_ERROR (Status);
return Status; return Status;
} }

View File

@ -22,6 +22,7 @@
#include <Protocol/ScsiPassThru.h> #include <Protocol/ScsiPassThru.h>
#include <Protocol/ScsiPassThruExt.h> #include <Protocol/ScsiPassThruExt.h>
#include <Protocol/PciIo.h> #include <Protocol/PciIo.h>
#include <Protocol/DriverSupportedEfiVersion.h>
#include <Library/DebugLib.h> #include <Library/DebugLib.h>
#include <Library/UefiDriverEntryPoint.h> #include <Library/UefiDriverEntryPoint.h>
@ -139,9 +140,10 @@ typedef struct {
// //
// Global Variables // Global Variables
// //
extern EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding; extern EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gAtapiScsiPassThruComponentName; extern EFI_COMPONENT_NAME_PROTOCOL gAtapiScsiPassThruComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gAtapiScsiPassThruComponentName2; extern EFI_COMPONENT_NAME2_PROTOCOL gAtapiScsiPassThruComponentName2;
extern EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gAtapiScsiPassThruDriverSupportedEfiVersion;
// //
// ATAPI Command op code // ATAPI Command op code

View File

@ -36,6 +36,7 @@
# #
[Sources.common] [Sources.common]
DriverSupportedEfiVersion.c
ComponentName.c ComponentName.c
AtapiPassThru.c AtapiPassThru.c
AtapiPassThru.h AtapiPassThru.h
@ -59,7 +60,12 @@
gEfiScsiPassThruProtocolGuid # PROTOCOL BY_START gEfiScsiPassThruProtocolGuid # PROTOCOL BY_START
gEfiExtScsiPassThruProtocolGuid # PROTOCOL BY_START gEfiExtScsiPassThruProtocolGuid # PROTOCOL BY_START
gEfiPciIoProtocolGuid # PROTOCOL TO_START gEfiPciIoProtocolGuid # PROTOCOL TO_START
gEfiDriverSupportedEfiVersionProtocolGuid # PROTOCOL ALWAYS_PRODUCED
[FeaturePcd] [FeaturePcd]
gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru
gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru
[Pcd]
gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion

View File

@ -0,0 +1,20 @@
/** @file
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.
Module Name: DriverSupportEfiVersion.c
**/
#include "AtapiPassThru.h"
EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gAtapiScsiPassThruDriverSupportedEfiVersion = {
sizeof (EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL), // Size of Protocol structure.
0 // Version number to be filled at start up.
};

View File

@ -28,4 +28,9 @@
gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru|TRUE|BOOLEAN|0x00010001 gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru|TRUE|BOOLEAN|0x00010001
gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru|TRUE|BOOLEAN|0x00010002 gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru|TRUE|BOOLEAN|0x00010002
[PcdsFixedAtBuild.common]
gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a|UINT32|0x00010003
[PcdsPatchableInModule.common]
gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a|UINT32|0x00010003

View File

@ -80,6 +80,7 @@
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000042 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000042
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06 gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0x0 gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0x0
gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a # EFI_2_10_SYSTEM_TABLE_REVISION
################################################################################ ################################################################################
# #