]> git.proxmox.com Git - mirror_edk2.git/commitdiff
replace PCI Root Bridge I/O protocol with PciLib to achieve M2 qulity.
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 18 Jul 2008 02:31:09 +0000 (02:31 +0000)
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 18 Jul 2008 02:31:09 +0000 (02:31 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5515 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwLite.inf
MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/Ia32/Ia32FtwMisc.c

index 3ec4321071fe7038e7e2c5fcac326fec43fdd778..399febb39ae4438069c853a43c38c317f7818155 100644 (file)
@@ -2,7 +2,7 @@
 # Component description file for FtwLite module.\r
 #\r
 # This driver provides fault tolerant write capability for block devices.\r
-# Copyright (c) 2006 - 2007, Intel Corporation\r
+# Copyright (c) 2006 - 2008, 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
 [Sources.EBC]\r
   Ia32/Ia32FtwMisc.c\r
 \r
-\r
 [Packages]\r
   MdePkg/MdePkg.dec\r
   MdeModulePkg/MdeModulePkg.dec\r
 \r
-\r
-\r
 [LibraryClasses]\r
   UefiBootServicesTableLib\r
   MemoryAllocationLib\r
   gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_CONSUMED\r
   gEfiFaultTolerantWriteLiteProtocolGuid        # PROTOCOL ALWAYS_PRODUCED\r
 \r
-[Protocols.IA32]\r
-  gEfiPciRootBridgeIoProtocolGuid               # PROTOCOL ALWAYS_CONSUMED\r
-\r
-[Protocols.EBC]\r
-  gEfiPciRootBridgeIoProtocolGuid               # PROTOCOL ALWAYS_CONSUMED\r
-\r
-\r
 [Pcd.common]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase\r
index 2c359b231c31c96a704e056c6a5787e03e0f483c..3893a6c857e6194b520ee7745a786d2c629505c5 100644 (file)
@@ -35,51 +35,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 /**\r
 \r
-  Read PCI register value.\r
-  This is a internal function.\r
-\r
-\r
-  @param Offset          Offset of the register\r
-\r
-  @return The pci register value.\r
-\r
-**/\r
-UINT32\r
-ReadPciRegister (\r
-  IN UINT32                 Offset\r
-  )\r
-{\r
-  EFI_STATUS                      Status;\r
-  UINT32                          Value;\r
-  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo;\r
-\r
-  Value   = 0;\r
-  Status  = gBS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **) &PciRootBridgeIo);\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "FtwLite: Locate PCI root bridge io protocol - %r", Status));\r
-    return 0;\r
-  }\r
-\r
-  Status = PciRootBridgeIo->Pci.Read (\r
-                                  PciRootBridgeIo,\r
-                                  EfiPciWidthUint32,\r
-                                  EFI_PCI_ADDRESS (\r
-                                    LPC_BUS_NUMBER,\r
-                                    LPC_DEVICE_NUMBER,\r
-                                    LPC_IF,\r
-                                    Offset\r
-                                    ),\r
-                                  1,\r
-                                  &Value\r
-                                  );\r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  return Value;\r
-}\r
-\r
-/**\r
-\r
-  Get swap state\r
+  Get swap state.\r
 \r
   This is a internal function.\r
 \r
@@ -95,10 +51,13 @@ GetSwapState (
   OUT BOOLEAN               *SwapState\r
   )\r
 {\r
+  UINT32 Value;\r
+  Value = PciRead32(EFI_PCI_ADDRESS (LPC_BUS_NUMBER, LPC_DEVICE_NUMBER, LPC_IF, GEN_STATUS))\r
+\r
   //\r
   // Top swap status is 13 bit\r
   //\r
-  *SwapState = (BOOLEAN) ((ReadPciRegister (GEN_STATUS) & TOP_SWAP_BIT) != 0);\r
+  *SwapState = (BOOLEAN) ((Value & TOP_SWAP_BIT) != 0);\r
 \r
   return EFI_SUCCESS;\r
 }\r
@@ -131,7 +90,7 @@ SetSwapState (
   //\r
   // Top-Swap bit (bit 13, D31: F0, Offset D4h)\r
   //\r
-  GenStatus = ReadPciRegister (GEN_STATUS);\r
+  GenStatus = PciRead32(EFI_PCI_ADDRESS (LPC_BUS_NUMBER, LPC_DEVICE_NUMBER, LPC_IF, GEN_STATUS));\r
 \r
   //\r
   // Set 13 bit, according to input NewSwapState\r
@@ -142,26 +101,10 @@ SetSwapState (
     GenStatus &= ~TOP_SWAP_BIT;\r
   }\r
 \r
-  Status = gBS->LocateProtocol (&gEfiPciRootBridgeIoProtocolGuid, NULL, (VOID **) &PciRootBridgeIo);\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "FtwLite: Locate PCI root bridge io protocol - %r", Status));\r
-    return Status;\r
-  }\r
   //\r
   // Write back the GenStatus register\r
   //\r
-  Status = PciRootBridgeIo->Pci.Write (\r
-                                  PciRootBridgeIo,\r
-                                  EfiPciWidthUint32,\r
-                                  EFI_PCI_ADDRESS (\r
-                                    LPC_BUS_NUMBER,\r
-                                    LPC_DEVICE_NUMBER,\r
-                                    LPC_IF,\r
-                                    GEN_STATUS\r
-                                    ),\r
-                                  1,\r
-                                  &GenStatus\r
-                                  );\r
+  PciWrite32(EFI_PCI_ADDRESS (LPC_BUS_NUMBER, LPC_DEVICE_NUMBER, LPC_IF, GEN_STATUS), GenStatus);\r
 \r
   DEBUG_CODE_BEGIN ();\r
     if (TopSwap) {\r