From 6f4ee195af585379325c58d83fefbbf844329416 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Tue, 11 Nov 2008 22:42:28 +0000 Subject: EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with EFI 1.10 and UEFI 2.10. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6462 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Framework/Include/TianoSpecDevicePath.h | 32 ++-------------- .../Library/Dxe/EfiDriverLib/DevicePath.c | 43 ++++----------------- .../EdkIIGlueLib/Library/UefiLib/UefiNotTiano.c | 44 +++------------------- .../RuntimeDxe/EfiRuntimeLib/RtDevicePath.c | 44 ++++------------------ 4 files changed, 23 insertions(+), 140 deletions(-) (limited to 'EdkCompatibilityPkg') diff --git a/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h b/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h index a2f45a4a54..413b19bcb5 100644 --- a/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h +++ b/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h @@ -24,43 +24,17 @@ Abstract: #pragma pack(1) -#if (EFI_SPECIFICATION_VERSION < 0x00020000) // -// EFI Specification extension on Media Device Path +// EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. +// In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with +// EFI 1.10 and UEFI 2.10. // #define MEDIA_FV_FILEPATH_DP 0x06 typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; EFI_GUID NameGuid; } MEDIA_FW_VOL_FILEPATH_DEVICE_PATH; -#endif - - -#if (EFI_SPECIFICATION_VERSION == 0x00020000) -// -// For UEFI 2.0, use GUIDed PIWG device path to work-around EFI Specification extension on Media Device Path -// -typedef struct { - EFI_DEVICE_PATH_PROTOCOL Header; - EFI_GUID PiwgSpecificDevicePath; - UINT32 Type; -} PIWG_DEVICE_PATH; -#define PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE 0x01 -typedef struct { - PIWG_DEVICE_PATH Piwg; - EFI_GUID NameGuid; -} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH; - -// -// Place holder for a future extension -// -#define PIWG_MEDIA_FW_VOL_DEVICE_PATH_TYPE 0x02 -typedef struct { - PIWG_DEVICE_PATH Piwg; - EFI_GUID VolumeGuid; -} MEDIA_FW_VOL_DEVICE_PATH; -#endif #if (EFI_SPECIFICATION_VERSION > 0x00020000) // diff --git a/EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/DevicePath.c b/EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/DevicePath.c index 1a827c1935..f763f03e66 100644 --- a/EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/DevicePath.c +++ b/EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/DevicePath.c @@ -520,33 +520,16 @@ Returns: --*/ { -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // + FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH; FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP; SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH; - FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP; - SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); - - // - // Add the GUID for generic PIWG device paths - // - EfiCopyMem (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid, sizeof(EFI_GUID)); - - // - // Add in the FW Vol File Path PIWG defined inforation - // - FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE; - -#endif EfiCopyMem (&FvDevicePathNode->NameGuid, NameGuid, sizeof(EFI_GUID)); } @@ -581,27 +564,15 @@ Returns: --*/ { -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH && DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) { return &FvDevicePathNode->NameGuid; } -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH && - DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) { - if (EfiCompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) { - if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) { - return &FvDevicePathNode->NameGuid; - } - } - } -#endif return NULL; } diff --git a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiLib/UefiNotTiano.c b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiLib/UefiNotTiano.c index 8fbfaa6a1a..a247f198e4 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiLib/UefiNotTiano.c +++ b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/UefiLib/UefiNotTiano.c @@ -297,29 +297,16 @@ GlueEfiGetNameGuidFromFwVolDevicePathNode ( { ASSERT (FvDevicePathNode != NULL); -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH && DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) { return (EFI_GUID *) &FvDevicePathNode->NameGuid; } -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - // check here : piwg or tiano - if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH && - DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) { - if (CompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) { - if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) { - return (EFI_GUID *) &FvDevicePathNode->NameGuid; - } - } - } -#endif return NULL; } @@ -348,34 +335,15 @@ GlueEfiInitializeFwVolDevicepathNode ( ASSERT (FvDevicePathNode != NULL); ASSERT (NameGuid != NULL); -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH; FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP; SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH; - FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP; - SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); - - // - // Add the GUID for generic PIWG device paths - // - CopyGuid (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid); - - // - // Add in the FW Vol File Path PIWG defined inforation - // - FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE; - -#endif - CopyGuid (&FvDevicePathNode->NameGuid, NameGuid); } diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/RtDevicePath.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/RtDevicePath.c index ac777802d7..77d232be24 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/RtDevicePath.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/RtDevicePath.c @@ -617,33 +617,15 @@ Returns: --*/ { -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH; FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP; SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH; - FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP; - SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)); - - // - // Add the GUID for generic PIWG device paths - // - EfiCopyMem (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid, sizeof(EFI_GUID)); - - // - // Add in the FW Vol File Path PIWG defined inforation - // - FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE; - -#endif EfiCopyMem (&FvDevicePathNode->NameGuid, NameGuid, sizeof(EFI_GUID)); } @@ -678,28 +660,16 @@ Returns: --*/ { -#if (EFI_SPECIFICATION_VERSION != 0x00020000) // - // Use old Device Path + // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. + // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with + // EFI 1.10 and UEFI 2.10. // if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH && DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) { return &FvDevicePathNode->NameGuid; } -#else - // - // Use the new Device path that does not conflict with the UEFI 2.0 - // - if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH && - DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) { - if (EfiCompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) { - if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) { - return &FvDevicePathNode->NameGuid; - } - } - } -#endif - return NULL; + return NULL; } -- cgit v1.2.3