]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Thunk driver producing PI Legacy Region 2 Protocol based on Framework Legacy Region...
authorxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 25 Nov 2009 08:33:31 +0000 (08:33 +0000)
committerxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 25 Nov 2009 08:33:31 +0000 (08:33 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9484 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.c [new file with mode: 0644]
EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.h [new file with mode: 0644]
EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.inf [new file with mode: 0644]
EdkCompatibilityPkg/EdkCompatibilityPkg.dsc

diff --git a/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.c b/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.c
new file mode 100644 (file)
index 0000000..79cc62a
--- /dev/null
@@ -0,0 +1,273 @@
+/** @file\r
+  Implementation of Legacy Region 2 Protocol based on Framework Legacy Region Protocol.\r
+\r
+  Intel's Framework Legacy Region Protocol is replaced by Legacy Region 2 Protocol in PI 1.2.\r
+  This module produces PI Legacy Region 2 Protocol on top of Framework Legacy Region Protocol.\r
+\r
+Copyright (c) 2009, 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
+**/\r
+\r
+#include "LegacyRegion2OnLegacyRegionThunk.h"\r
+\r
+EFI_HANDLE   mLegacyRegion2Handle = NULL;\r
+\r
+EFI_LEGACY_REGION_PROTOCOL *mLegacyRegion;\r
+\r
+EFI_LEGACY_REGION2_PROTOCOL  mLegacyRegion2 = {\r
+  LegacyRegion2Decode,\r
+  LegacyRegion2Lock,\r
+  LegacyRegion2BootLock,\r
+  LegacyRegion2Unlock,\r
+  LegacyRegionGetInfo\r
+};\r
+\r
+/**\r
+  Modify the hardware to allow (decode) or disallow (not decode) memory reads in a region.\r
+\r
+  If the On parameter evaluates to TRUE, this function enables memory reads in the address range \r
+  Start to (Start + Length - 1).\r
+  If the On parameter evaluates to FALSE, this function disables memory reads in the address range \r
+  Start to (Start + Length - 1).\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose attributes\r
+                                should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address\r
+                                was not aligned to a region's starting address or if the length\r
+                                was greater than the number of bytes in the first region.\r
+  @param  On[in]                Decode / Non-Decode flag.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Decode (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL  *This,\r
+  IN  UINT32                       Start,\r
+  IN  UINT32                       Length,\r
+  OUT UINT32                       *Granularity,\r
+  IN  BOOLEAN                      *On\r
+  )\r
+{\r
+  ASSERT (Granularity != NULL);\r
+  *Granularity = 0;\r
+\r
+  return mLegacyRegion->Decode (\r
+                          mLegacyRegion,\r
+                          Start,\r
+                          Length,\r
+                          On\r
+                          );\r
+}\r
+\r
+/**\r
+  Modify the hardware to disallow memory writes in a region.\r
+\r
+  This function changes the attributes of a memory range to not allow writes.\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Lock (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL *This,\r
+  IN  UINT32                      Start,\r
+  IN  UINT32                      Length,\r
+  OUT UINT32                      *Granularity\r
+  )\r
+{\r
+  ASSERT (Granularity != NULL);\r
+\r
+  return mLegacyRegion->Lock (\r
+                          mLegacyRegion,\r
+                          Start,\r
+                          Length,\r
+                          Granularity\r
+                          );\r
+}\r
+\r
+/**\r
+  Modify the hardware to disallow memory attribute changes in a region.\r
+\r
+  This function makes the attributes of a region read only. Once a region is boot-locked with this \r
+  function, the read and write attributes of that region cannot be changed until a power cycle has\r
+  reset the boot-lock attribute. Calls to Decode(), Lock() and Unlock() will have no effect.\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+  @retval EFI_UNSUPPORTED       The chipset does not support locking the configuration registers in\r
+                                a way that will not affect memory regions outside the legacy memory\r
+                                region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2BootLock (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL         *This,\r
+  IN  UINT32                              Start,\r
+  IN  UINT32                              Length,\r
+  OUT UINT32                              *Granularity\r
+  )\r
+{\r
+  ASSERT (Granularity != NULL);\r
+\r
+  return mLegacyRegion->BootLock (\r
+                          mLegacyRegion,\r
+                          Start,\r
+                          Length,\r
+                          Granularity\r
+                          );\r
+}\r
+\r
+/**\r
+  Modify the hardware to allow memory writes in a region.\r
+\r
+  This function changes the attributes of a memory range to allow writes.  \r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Unlock (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL  *This,\r
+  IN  UINT32                       Start,\r
+  IN  UINT32                       Length,\r
+  OUT UINT32                       *Granularity\r
+  )\r
+{\r
+  ASSERT (Granularity != NULL);\r
+\r
+  return mLegacyRegion->UnLock (\r
+                          mLegacyRegion,\r
+                          Start,\r
+                          Length,\r
+                          Granularity\r
+                          );\r
+}\r
+\r
+/**\r
+  Get region information for the attributes of the Legacy Region.\r
+\r
+  This function is used to discover the granularity of the attributes for the memory in the legacy \r
+  region. Each attribute may have a different granularity and the granularity may not be the same\r
+  for all memory ranges in the legacy region.  \r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  DescriptorCount[out]  The number of region descriptor entries returned in the Descriptor\r
+                                buffer.\r
+  @param  Descriptor[out]       A pointer to a pointer used to return a buffer where the legacy\r
+                                region information is deposited. This buffer will contain a list of\r
+                                DescriptorCount number of region descriptors.  This function will\r
+                                provide the memory for the buffer.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegionGetInfo (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL   *This,\r
+  OUT UINT32                        *DescriptorCount,\r
+  OUT EFI_LEGACY_REGION_DESCRIPTOR  **Descriptor\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  The user Entry Point for module LegacyRegionDxe.  The user code starts with this function.\r
+\r
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.  \r
+  @param[in] SystemTable    A pointer to the EFI System Table.\r
+  \r
+  @retval EFI_SUCCESS       The entry point is executed successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2OnLegacyRegionThunkInitialize (\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
+  )\r
+{\r
+  EFI_STATUS  Status;\r
+  \r
+  //\r
+  // Make sure the Legacy Region 2 Protocol is not already installed in the system\r
+  //\r
+  ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiLegacyRegion2ProtocolGuid);\r
+  \r
+  //\r
+  // Locate and cache Framework Legacy Region Protocol.\r
+  //\r
+  Status = gBS->LocateProtocol (\r
+                  &gEfiLegacyRegionProtocolGuid, \r
+                  NULL, \r
+                  (VOID **) &mLegacyRegion\r
+                  );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  //\r
+  // Install the protocol on a new handle.\r
+  //\r
+  Status = gBS->InstallMultipleProtocolInterfaces (\r
+                  &mLegacyRegion2Handle,\r
+                  &gEfiLegacyRegion2ProtocolGuid, &mLegacyRegion2,\r
+                  NULL\r
+                  );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  return Status;\r
+}\r
diff --git a/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.h b/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.h
new file mode 100644 (file)
index 0000000..8c62a73
--- /dev/null
@@ -0,0 +1,177 @@
+/** @file\r
+  Internal include file for the Legacy Region 2 Protocol thunk driver.\r
+\r
+Copyright (c) 2009, 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
+**/\r
+\r
+#ifndef __LEGACY_REGION2_ON_LEGACY_REGION_H__\r
+#define __LEGACY_REGION2_ON_LEGACY_REGION_H__\r
+\r
+#include <Protocol/LegacyRegion2.h>\r
+#include <Protocol/LegacyRegion.h>\r
+\r
+#include <Library/DebugLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+\r
+/**\r
+  Modify the hardware to allow (decode) or disallow (not decode) memory reads in a region.\r
+\r
+  If the On parameter evaluates to TRUE, this function enables memory reads in the address range \r
+  Start to (Start + Length - 1).\r
+  If the On parameter evaluates to FALSE, this function disables memory reads in the address range \r
+  Start to (Start + Length - 1).\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose attributes\r
+                                should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address\r
+                                was not aligned to a region's starting address or if the length\r
+                                was greater than the number of bytes in the first region.\r
+  @param  On[in]                Decode / Non-Decode flag.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Decode (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL  *This,\r
+  IN  UINT32                       Start,\r
+  IN  UINT32                       Length,\r
+  OUT UINT32                       *Granularity,\r
+  IN  BOOLEAN                      *On\r
+  );\r
+\r
+/**\r
+  Modify the hardware to disallow memory writes in a region.\r
+\r
+  This function changes the attributes of a memory range to not allow writes.\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Lock (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL *This,\r
+  IN  UINT32                      Start,\r
+  IN  UINT32                      Length,\r
+  OUT UINT32                      *Granularity\r
+  );\r
+\r
+/**\r
+  Modify the hardware to disallow memory attribute changes in a region.\r
+\r
+  This function makes the attributes of a region read only. Once a region is boot-locked with this \r
+  function, the read and write attributes of that region cannot be changed until a power cycle has\r
+  reset the boot-lock attribute. Calls to Decode(), Lock() and Unlock() will have no effect.\r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+  @retval EFI_UNSUPPORTED       The chipset does not support locking the configuration registers in\r
+                                a way that will not affect memory regions outside the legacy memory\r
+                                region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2BootLock (\r
+  IN EFI_LEGACY_REGION2_PROTOCOL          *This,\r
+  IN  UINT32                              Start,\r
+  IN  UINT32                              Length,\r
+  OUT UINT32                              *Granularity\r
+  );\r
+\r
+/**\r
+  Modify the hardware to allow memory writes in a region.\r
+\r
+  This function changes the attributes of a memory range to allow writes.  \r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  Start[in]             The beginning of the physical address of the region whose\r
+                                attributes should be modified.\r
+  @param  Length[in]            The number of bytes of memory whose attributes should be modified.\r
+                                The actual number of bytes modified may be greater than the number\r
+                                specified.\r
+  @param  Granularity[out]      The number of bytes in the last region affected. This may be less\r
+                                than the total number of bytes affected if the starting address was\r
+                                not aligned to a region's starting address or if the length was\r
+                                greater than the number of bytes in the first region.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegion2Unlock (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL  *This,\r
+  IN  UINT32                       Start,\r
+  IN  UINT32                       Length,\r
+  OUT UINT32                       *Granularity\r
+  );\r
+\r
+/**\r
+  Get region information for the attributes of the Legacy Region.\r
+\r
+  This function is used to discover the granularity of the attributes for the memory in the legacy \r
+  region. Each attribute may have a different granularity and the granularity may not be the same\r
+  for all memory ranges in the legacy region.  \r
+\r
+  @param  This[in]              Indicates the EFI_LEGACY_REGION_PROTOCOL instance.\r
+  @param  DescriptorCount[out]  The number of region descriptor entries returned in the Descriptor\r
+                                buffer.\r
+  @param  Descriptor[out]       A pointer to a pointer used to return a buffer where the legacy\r
+                                region information is deposited. This buffer will contain a list of\r
+                                DescriptorCount number of region descriptors.  This function will\r
+                                provide the memory for the buffer.\r
+\r
+  @retval EFI_SUCCESS           The region's attributes were successfully modified.\r
+  @retval EFI_INVALID_PARAMETER If Start or Length describe an address not in the Legacy Region.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LegacyRegionGetInfo (\r
+  IN  EFI_LEGACY_REGION2_PROTOCOL   *This,\r
+  OUT UINT32                        *DescriptorCount,\r
+  OUT EFI_LEGACY_REGION_DESCRIPTOR  **Descriptor\r
+  );\r
+\r
+#endif\r
diff --git a/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.inf b/EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.inf
new file mode 100644 (file)
index 0000000..9950660
--- /dev/null
@@ -0,0 +1,53 @@
+#/** @file\r
+#  Implementation of Legacy Region 2 Protocol based on Framework Legacy Region Protocol.\r
+#\r
+#  Intel's Framework Legacy Region Protocol is replaced by Legacy Region 2 Protocol in PI 1.2.\r
+#  This module produces PI Legacy Region 2 Protocol on top of Framework Legacy Region Protocol.\r
+#\r
+#  Copyright (c) 2009, Intel Corporation\r
+#\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
+#  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
+#\r
+#**/\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010005\r
+  BASE_NAME                      = LegacyRegion2OnLegacyRegionThunk\r
+  FILE_GUID                      = 5167FD5D-AAA2-4FE1-9D0D-5CFCAB36C14C\r
+  MODULE_TYPE                    = DXE_DRIVER\r
+  VERSION_STRING                 = 1.0\r
+\r
+  ENTRY_POINT                    = LegacyRegion2OnLegacyRegionThunkInitialize\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC\r
+#\r
+\r
+[Sources]\r
+  LegacyRegion2OnLegacyRegionThunk.c\r
+  LegacyRegion2OnLegacyRegionThunk.h\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  IntelFrameworkPkg/IntelFrameworkPkg.dec\r
+  EdkCompatibilityPkg/EdkCompatibilityPkg.dec\r
+\r
+[LibraryClasses]\r
+  UefiDriverEntryPoint\r
+  DebugLib\r
+  UefiBootServicesTableLib\r
+\r
+[Protocols]\r
+  gEfiLegacyRegion2ProtocolGuid         ## PRODUCES\r
+  gEfiLegacyRegionProtocolGuid          ## CONSUMES\r
+\r
+[Depex]\r
+  gEfiLegacyRegionProtocolGuid\r
index 44dcbd6b146b0ab9830cc561255962bb77ba4210..cba517dca3fa044f330cabcf0d38fd9b27e1e138 100644 (file)
@@ -241,7 +241,7 @@ define GCC_MACRO                 = -DEFI_SPECIFICATION_VERSION=0x00020000 -DPI_S
   EdkCompatibilityPkg/Compatibility/Uc2OnUcThunk/Uc2OnUcThunk.inf\r
   EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf\r
   EdkCompatibilityPkg/Compatibility/PrintThunk/PrintThunk.inf\r
-\r
+  EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.inf\r
 \r
   #\r
   # User needs to turn on the compatibility switches for VFRC and EDK II build tool for Framework HII modules \r