);\r
ASSERT_EFI_ERROR (Status);\r
\r
+ //\r
+ // Install EFI Driver Supported EFI Version Protocol required for \r
+ // EFI drivers that are on PCI and other plug in cards.\r
+ //\r
+ gAtapiScsiPassThruDriverSupportedEfiVersion.FirmwareVersion = PcdGet32 (PcdDriverSupportedEfiVersion);\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &ImageHandle,\r
+ &gEfiDriverSupportedEfiVersionProtocolGuid,\r
+ &gAtapiScsiPassThruDriverSupportedEfiVersion,\r
+ NULL\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
return Status;\r
}\r
#include <Protocol/ScsiPassThru.h>\r
#include <Protocol/ScsiPassThruExt.h>\r
#include <Protocol/PciIo.h>\r
+#include <Protocol/DriverSupportedEfiVersion.h>\r
\r
#include <Library/DebugLib.h>\r
#include <Library/UefiDriverEntryPoint.h>\r
//\r
// Global Variables\r
//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gAtapiScsiPassThruComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gAtapiScsiPassThruComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gAtapiScsiPassThruComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gAtapiScsiPassThruComponentName2;\r
+extern EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gAtapiScsiPassThruDriverSupportedEfiVersion;\r
\r
//\r
// ATAPI Command op code\r
#\r
\r
[Sources.common]\r
+ DriverSupportedEfiVersion.c\r
ComponentName.c\r
AtapiPassThru.c\r
AtapiPassThru.h\r
gEfiScsiPassThruProtocolGuid # PROTOCOL BY_START\r
gEfiExtScsiPassThruProtocolGuid # PROTOCOL BY_START\r
gEfiPciIoProtocolGuid # PROTOCOL TO_START\r
+ gEfiDriverSupportedEfiVersionProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
\r
[FeaturePcd]\r
gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru\r
gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru\r
+\r
+[Pcd]\r
+ gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion\r
+\r
--- /dev/null
+/** @file\r
+ Copyright (c) 2007, Intel Corporation \r
+ All rights reserved. This program and the accompanying materials \r
+ are licensed and made available under the terms and conditions of the BSD License \r
+ which accompanies this distribution. The full text of the license may be found at \r
+ http://opensource.org/licenses/bsd-license.php \r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+ Module Name: DriverSupportEfiVersion.c\r
+\r
+**/\r
+#include "AtapiPassThru.h"\r
+\r
+EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL gAtapiScsiPassThruDriverSupportedEfiVersion = {\r
+ sizeof (EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL), // Size of Protocol structure.\r
+ 0 // Version number to be filled at start up.\r
+};\r
+\r
gOptionRomPkgTokenSpaceGuid.PcdSupportScsiPassThru|TRUE|BOOLEAN|0x00010001\r
gOptionRomPkgTokenSpaceGuid.PcdSupportExtScsiPassThru|TRUE|BOOLEAN|0x00010002\r
\r
+[PcdsFixedAtBuild.common]\r
+ gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a|UINT32|0x00010003\r
+\r
+[PcdsPatchableInModule.common]\r
+ gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a|UINT32|0x00010003\r
\r
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000042\r
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06\r
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0x0\r
+ gOptionRomPkgTokenSpaceGuid.PcdDriverSupportedEfiVersion|0x0002000a # EFI_2_10_SYSTEM_TABLE_REVISION\r
\r
################################################################################\r
#\r