SHEL22
authorhfang <hfang@0aefa8ac-fc23-0410-b7a3-bf826d37e4c2>
Wed, 16 Dec 2009 06:52:30 +0000 (06:52 +0000)
committerhfang <hfang@0aefa8ac-fc23-0410-b7a3-bf826d37e4c2>
Wed, 16 Dec 2009 06:52:30 +0000 (06:52 +0000)
git-svn-id: https://efi-shell.tianocore.org/svn/efi-shell/trunk/Shell@35 0aefa8ac-fc23-0410-b7a3-bf826d37e4c2

EDK_Snapshot.txt
IfConfig/IfConfig.c
SmbiosView/PrintInfo.c
SmbiosView/QueryTable.c
SmbiosView/SmBiosViewStrings.uni
drvcfg/drvcfg.c
pci/pci.c
shellenv/protid.c

index b22d23a..06e46fb 100644 (file)
@@ -1,5 +1,5 @@
 Notes:
-  This EFI Shell release package has been tested on the 2009-08-12's EDK which snapshot
-is Edk-Dev-Snapshot-20090812, User can get this version EDK from the following URL:
-  https://edk.tianocore.org/files/documents/16/558/Edk-Dev-Snapshot-20090812.zip
+  This EFI Shell release package has been tested on the 2009-09-28's EDK which snapshot
+is Edk-Dev-Snapshot-20090928, User can get this version EDK from the following URL:
+  https://edk.tianocore.org/files/documents/16/588/Edk-Dev-Snapshot-20090928.zip
   We don't guarantee this package can work correctly on the other EDK snapshot.
\ No newline at end of file
index 07a289d..1192eb3 100644 (file)
@@ -188,6 +188,151 @@ Returns:
     );
 }
 
+EFI_STATUS
+TestChildHandle (
+  IN CONST EFI_HANDLE       ControllerHandle,
+  IN CONST EFI_HANDLE       ChildHandle,
+  IN CONST EFI_GUID         *ProtocolGuid
+  )
+/*++
+
+Routine Description:
+
+  Tests whether a child handle is a child device of the controller.
+
+Arguments:
+
+  ControllerHandle - A handle for a (parent) controller to test.
+  ChildHandle      - A child handle to test.
+  ProtocolGuid     - Supplies the protocol that the child controller
+                     opens on its parent controller
+Returns:
+
+  EFI_SUCCESS      - ChildHandle is a child of the ControllerHandle.
+  EFI_UNSUPPORTED  - ChildHandle is not a child of the ControllerHandle.
+
+--*/
+{
+  EFI_STATUS                            Status;
+  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY   *OpenInfoBuffer;
+  UINTN                                 EntryCount;
+  UINTN                                 Index;
+
+  ASSERT (ProtocolGuid != NULL);
+
+  //
+  // Retrieve the list of agents that are consuming the specific protocol
+  // on ControllerHandle.
+  //
+  Status = BS->OpenProtocolInformation (
+                 ControllerHandle,
+                 (EFI_GUID *) ProtocolGuid,
+                 &OpenInfoBuffer,
+                 &EntryCount
+                 );
+  if (EFI_ERROR (Status)) {
+    return EFI_UNSUPPORTED;
+  }
+
+  //
+  // Inspect if ChildHandle is one of the agents.
+  //
+  Status = EFI_UNSUPPORTED;
+  for (Index = 0; Index < EntryCount; Index++) {
+    if ((OpenInfoBuffer[Index].ControllerHandle == ChildHandle) &&
+        (OpenInfoBuffer[Index].Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {
+      Status = EFI_SUCCESS;
+      break;
+    }
+  }
+
+  FreePool (OpenInfoBuffer);
+  return Status;
+}
+
+EFI_STATUS 
+GetChildHandle (
+  IN EFI_HANDLE         Controller,
+  OUT EFI_HANDLE        *ChildHandle
+  )
+/*++
+
+Routine Description:
+  Get the child handle of the NIC handle.
+
+Arguments:
+  Controller   - Routing information: GUID.
+  ChildHandle  - Returned child handle.
+
+Returns:
+  EFI_SUCCESS  - Successfully to get child handle.
+  Other        - Failed to get child handle.
+
+--*/
+{
+  EFI_STATUS                 Status;
+  EFI_HANDLE                 *Handles;
+  UINTN                      HandleCount;
+  UINTN                      Index;
+  EFI_DEVICE_PATH_PROTOCOL   *ChildDeviceDevicePath;
+  VENDOR_DEVICE_PATH         *VendorDeviceNode;
+
+  //
+  // Locate all EFI Hii Config Access protocols
+  //
+  Status = BS->LocateHandleBuffer (
+                 ByProtocol,
+                 &gEfiHiiConfigAccessProtocolGuid,
+                 NULL,
+                 &HandleCount,
+                 &Handles
+                 );
+  if (EFI_ERROR (Status) || (HandleCount == 0)) {
+    return Status;
+  }
+
+  Status = EFI_NOT_FOUND;
+
+  for (Index = 0; Index < HandleCount; Index++) {
+  
+    Status = TestChildHandle (Controller, Handles[Index], &gEfiManagedNetworkServiceBindingProtocolGuid);
+    if (!EFI_ERROR (Status)) {
+      //
+      // Get device path on the child handle
+      //
+      Status = BS->HandleProtocol (
+                     Handles[Index],
+                     &gEfiDevicePathProtocolGuid,
+                     (VOID **) &ChildDeviceDevicePath
+                     );
+      
+      if (!EFI_ERROR (Status)) {
+        while (!IsDevicePathEnd (ChildDeviceDevicePath)) {
+          ChildDeviceDevicePath = NextDevicePathNode (ChildDeviceDevicePath);
+          //
+          // Parse one instance
+          //
+          if (ChildDeviceDevicePath->Type == HARDWARE_DEVICE_PATH && 
+              ChildDeviceDevicePath->SubType == HW_VENDOR_DP) {
+            VendorDeviceNode = (VENDOR_DEVICE_PATH *) ChildDeviceDevicePath;
+            if (CompareMem (&VendorDeviceNode->Guid, &gEfiNicIp4ConfigVariableGuid, sizeof (EFI_GUID)) == 0) {
+              //
+              // Found item matched gEfiNicIp4ConfigVariableGuid
+              //
+              *ChildHandle = Handles[Index];
+              FreePool (Handles);
+              return EFI_SUCCESS;
+            }
+          }
+        }
+      }      
+    }
+  }
+
+  FreePool (Handles);
+  return Status;  
+}
+
 UINTN
 AppendOffsetWidthValue (
   IN OUT CHAR16               *String,
@@ -267,14 +412,13 @@ Returns:
   UINTN                      NameLength;
 
   //
-  // Get device path 
+  // Get the device path from handle installed EFI HII Config Access protocol
   //
   Status = BS->HandleProtocol (
                  DriverHandle,
                  &gEfiDevicePathProtocolGuid,
                  (VOID **) &DevicePath
                  );
-  
   if (EFI_ERROR (Status)) {
     return NULL;
   }
@@ -315,7 +459,6 @@ Returns:
   //
   // Append L"&PATH="
   //
-
   StrCpy (String, L"&PATH=");
   String += StrLen (L"&PATH=");
   UpperString = String;
@@ -436,11 +579,13 @@ Returns:
   CHAR16                        *String;
   UINTN                         Length;
   UINTN                         Offset;
+  EFI_HANDLE                    ChildHandle;
 
   AccessResults    = NULL;
   ConfigHdr        = NULL;
   ConfigResp       = NULL;
   NicConfigRequest = NULL;
+  NicInfo          = NULL;
 
   InitializeListHead (&NicInfoList);
 
@@ -471,10 +616,17 @@ Returns:
   }
 
   for (Index = 0; Index < HandleCount; Index++) {
+    Status = GetChildHandle (Handles[Index], &ChildHandle);
+    if (EFI_ERROR (Status)) {
+      //
+      // If failed to get Child handle, try NIC controller handle for back-compatibility.
+      //
+      ChildHandle = Handles[Index];
+    }
     //
     // Construct configuration request string header
     //
-    ConfigHdr = ConstructConfigHdr (&gEfiNicIp4ConfigVariableGuid, EFI_NIC_IP4_CONFIG_VARIABLE, Handles[Index]);
+    ConfigHdr = ConstructConfigHdr (&gEfiNicIp4ConfigVariableGuid, EFI_NIC_IP4_CONFIG_VARIABLE, ChildHandle);
     Length = StrLen (ConfigHdr);
     ConfigResp = AllocateZeroPool ((Length + NIC_ITEM_CONFIG_SIZE * 2 + 100) * sizeof (CHAR16));
     if (ConfigResp == NULL) {
@@ -568,6 +720,8 @@ Returns:
     FreePool (ConfigHdr);
   }
 
+  FreePool (Handles);
+
   return EFI_SUCCESS;
  
 ON_ERROR:
@@ -577,6 +731,9 @@ ON_ERROR:
   if (NicConfigRequest != NULL) {
     FreePool (NicConfigRequest);
   }
+  if (NicInfo != NULL) {
+    FreePool (NicInfo);
+  }
   if (ConfigResp != NULL) {
     FreePool (ConfigResp);
   }
@@ -621,16 +778,24 @@ Returns:
   CHAR16                        *String;
   UINTN                         Length;
   UINTN                         Offset;
+  EFI_HANDLE                    ChildHandle;
 
   AccessResults  = NULL;
   ConfigHdr      = NULL;
   ConfigResp     = NULL;
   NicConfig      = NULL;
 
+  Status = GetChildHandle (NicInfo->Handle, &ChildHandle);
+  if (EFI_ERROR (Status)) {
+    //
+    // If failed to get Child handle, try NIC controller handle for back-compatibility
+    //
+    ChildHandle = NicInfo->Handle;
+  }
   //
   // Construct config request string header
   //
-  ConfigHdr = ConstructConfigHdr (&gEfiNicIp4ConfigVariableGuid, EFI_NIC_IP4_CONFIG_VARIABLE, NicInfo->Handle);
+  ConfigHdr = ConstructConfigHdr (&gEfiNicIp4ConfigVariableGuid, EFI_NIC_IP4_CONFIG_VARIABLE, ChildHandle);
 
   Length = StrLen (ConfigHdr);
   ConfigResp = AllocateZeroPool ((Length + NIC_ITEM_CONFIG_SIZE * 2 + 100) * sizeof (CHAR16));
@@ -639,7 +804,7 @@ Returns:
   NicConfig = AllocateZeroPool (NIC_ITEM_CONFIG_SIZE);
   if (NicConfig == NULL) {
     Status = EFI_OUT_OF_RESOURCES;
-    goto ON_ERROR;
+    goto ON_EXIT;
   }
 
   if (Config != NULL) {
@@ -665,7 +830,7 @@ Returns:
                                 &AccessProgress
                                 );
   if (EFI_ERROR (Status)) {
-    goto ON_ERROR;
+    goto ON_EXIT;
   }
 
   //
@@ -676,11 +841,8 @@ Returns:
                                 AccessResults,
                                 &AccessProgress
                                 );
-  if (EFI_ERROR (Status)) {
-    goto ON_ERROR;
-  }
 
-ON_ERROR:
+ON_EXIT:
   if (AccessResults != NULL) {
     FreePool (AccessResults);
   }
@@ -1613,7 +1775,6 @@ Returns:
     Status = Info->NicIp4Config->SetInfo (Info->NicIp4Config, NULL, TRUE);
 #endif
 
-
     if (EFI_ERROR (Status)) {
       return Status;
     }
index 5e4f9a6..ff1f63c 100644 (file)
@@ -1,6 +1,6 @@
 /*++
 
-Copyright (c) 2005 - 2008, Intel Corporation                                                         
+Copyright (c) 2005 - 2009, 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         
@@ -1300,6 +1300,22 @@ DisplayProcessorFamily (
     Print (L"Power PC 750\n");
     break;
 
+  case 0x28:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO), HiiHandle);
+    break;
+    
+  case 0x29:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_DUO_MOBILE), HiiHandle);
+    break;    
+
+  case 0x2A:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_SOLO_MOBILE), HiiHandle);
+    break;
+
+  case 0x2B:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_ATOM), HiiHandle);
+    break;
+
   case 0x30:
     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ALPHA_FAMILY_2), HiiHandle);
     break;
@@ -1468,6 +1484,30 @@ DisplayProcessorFamily (
     Print (L"AMD Turion 64X2 Mobile\n");
     break;
 
+  case 0x8A:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0x8B:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_OPTERON_THIRD_GENERATION), HiiHandle);
+    break;
+
+  case 0x8C:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_FX_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0x8D:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X4_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0x8E:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_X2_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0x8F:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_X2_DUAL_CORE), HiiHandle);
+    break;
+
   case 0x90:
     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PA_RISC_FAMILY), HiiHandle);
     break;
@@ -1476,10 +1516,102 @@ DisplayProcessorFamily (
     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_V30_FAMILY), HiiHandle);
     break;
 
+  case 0xA1:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3200_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xA2:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3000_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA3:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5300_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xA4:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5100_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA5:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5000_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA6:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_LV_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA7:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_ULV_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA8:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7100_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xA9:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5400_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xAA:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xAB:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5200_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xAC:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7200_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xAD:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7300_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xAE:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xAF:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7400_SERIES_MULTI_CORE), HiiHandle);
+    break;
+
   case 0xB0:
     PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PENTIUM_III_XEON), HiiHandle);
     break;
 
+  case 0xC0:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO), HiiHandle);
+    break;
+
+  case 0xC1:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), HiiHandle);
+    break;
+
+  case 0xC2:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_QUAD), HiiHandle);
+    break;
+
+  case 0xC3:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_EXTREME), HiiHandle);
+    break;
+
+  case 0xC4:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_DUO_MOBILE), HiiHandle);
+    break;
+
+  case 0xC5:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE2_SOLO_MOBILE), HiiHandle);
+    break;
+
+  case 0xC6:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CORE_I7), HiiHandle);
+    break;
+
+  case 0xC7:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_CELERON_DUAL_CORE), HiiHandle);
+    break;
+
   case 0xC8:
     Print (L"IBM 390\n");
     break;
@@ -1516,6 +1648,62 @@ DisplayProcessorFamily (
     Print (L"Eden\n");
     break;
 
+  case 0xD6:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_MULTI_CORE), HiiHandle);
+    break;
+
+  case 0xD7:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xD8:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_3_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xDA:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xDB:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_5_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xDD:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xDE:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xDF:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_INTEL_XEON_7_SERIES_MULTI_CORE), HiiHandle);
+    break;
+
+  case 0xE6:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_EMBEDDED_OPTERON_QUAD_CORE), HiiHandle);
+    break;
+
+  case 0xE7:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_PHENOM_TRIPLE_CORE), HiiHandle);
+    break;
+
+  case 0xE8:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_ULTRA_DUAL_CORE_MOBILE), HiiHandle);
+    break;
+
+  case 0xE9:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_TURION_DUAL_CORE_MOBILE), HiiHandle);
+    break;
+
+  case 0xEA:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_ATHLON_DUAL_CORE), HiiHandle);
+    break;
+
+  case 0xEB:
+    PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_AMD_SEMPRON_SI), HiiHandle);
+    break;
+
   case 0xFA:
     Print (L"i860\n");
     break;
index 0f226fb..4570938 100644 (file)
@@ -1,6 +1,6 @@
 /*++
 
-Copyright (c) 2005 - 2007 Intel Corporation                                                         
+Copyright (c) 2005 - 2009 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         
@@ -342,7 +342,23 @@ TABLE_ITEM  ProcessorUpgradeTable[] = {
   {
     0x15,
     L"Socket LGA775"
-  }
+  },
+  {
+    0x16,
+    L"Socket S1"
+  },
+  {
+    0x17,
+    L"Socket AM2"
+  },
+  {
+    0x18,
+    L"Socket F"
+  },
+  {
+    0x19,
+    L"Socket LGA1366"
+  }\
 };
 
 TABLE_ITEM  McErrorDetectMethodTable[] = {
@@ -647,6 +663,34 @@ TABLE_ITEM  CacheAssociativityTable[] = {
   {
     0x06,
     L"Fully Associative"
+  },
+  {
+    0x07,
+    L"8-way Set-Associative"
+  },
+  {
+    0x08,
+    L"16-way Set-Associative"
+  },
+  {
+    0x09,
+    L"12-way Set-Associative"
+  },
+  {
+    0x0A,
+    L"24-way Set-Associative"
+  },
+  {
+    0x0B,
+    L"32-way Set-Associative"
+  },
+  {
+    0x0C,
+    L"48-way Set-Associative"
+  },
+  {
+    0x0D,
+    L"64-way Set-Associative"
   }
 };
 
@@ -1085,6 +1129,30 @@ TABLE_ITEM  SystemSlotTypeTable[] = {
     0xAA,
     L"PCI Express X16"
   },    
+  {
+    0xAB,
+    L"PCI Express Gen 26"
+  }, 
+  {
+    0xAC,
+    L"PCI Express Gen 2 X1"
+  },
+  {
+    0xAD,
+    L"PCI Express Gen 2 X2"
+  }, 
+  {
+    0xAE,
+    L"PCI Express Gen 2 X4"
+  }, 
+  {
+    0xAF,
+    L"PCI Express Gen 2 X8"
+  },   
+  {
+    0xB0,
+    L"PCI Express Gen 2 X16"
+  }
 };
 
 TABLE_ITEM  SystemSlotDataBusWidthTable[] = {
@@ -1999,6 +2067,14 @@ TABLE_ITEM  MemoryDeviceTypeTable[] = {
   {
     0x14,
     L"  DDR2 FB-DIMM"
+  },
+  {
+    0x18,
+    L"  DDR3"
+  },
+  {
+    0x19,
+    L"  FBD2"
   }
 };
 
index 3a8e004..1bb07a7 100644 (file)
Binary files a/SmbiosView/SmBiosViewStrings.uni and b/SmbiosView/SmBiosViewStrings.uni differ
index c0901ea..b604432 100644 (file)
@@ -735,6 +735,7 @@ ShellCmdDriverConfigurationProcessActionRequired (
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_STOP_CONTROLLER), HiiHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_ENTER_STOP_CONTROL), HiiHandle);
     Input (L"", ReturnStr, sizeof (ReturnStr) / sizeof (CHAR16));
+    Print (L"\n");
     BS->DisconnectController (ControllerHandle, DriverImageHandle, ChildHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_CONTROLLER_STOPPED), HiiHandle);
     break;
@@ -743,6 +744,7 @@ ShellCmdDriverConfigurationProcessActionRequired (
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_RESTART_CONTROLLER), HiiHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_ENTER_RESTART_CONTROLLER), HiiHandle);
     Input (L"", ReturnStr, sizeof (ReturnStr) / sizeof (CHAR16));
+    Print (L"\n");
     BS->DisconnectController (ControllerHandle, DriverImageHandle, ChildHandle);
     ContextOverride[0]  = DriverImageHandle;
     ContextOverride[1]  = NULL;
index 8fbd45d..8a7826b 100644 (file)
--- a/pci/pci.c
+++ b/pci/pci.c
@@ -1734,9 +1734,9 @@ Returns:
 
     } else if ((*Bar & PCI_BIT_1) == 0 && (*Bar & PCI_BIT_2) != 0) {
       Bar64 = 0x0;
-      CopyMem (&Bar64, Bar, sizeof (UINT32));
+      CopyMem (&Bar64, Bar, sizeof (UINT64));
       PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_2), HiiHandle, RShiftU64 ((Bar64 & 0xfffffffffffffff0), 32));
-      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_3), HiiHandle, Bar64 & 0xfffffffffffffff0);
+      PrintToken (STRING_TOKEN (STR_PCI2_ONE_VAR_3), HiiHandle, (UINT32) (Bar64 & 0xfffffffffffffff0));
       PrintToken (STRING_TOKEN (STR_PCI2_MEM), HiiHandle);
       PrintToken (STRING_TOKEN (STR_PCI2_64_BITS), HiiHandle);
       IsBar32 = FALSE;
@@ -1806,7 +1806,7 @@ Returns:
   } else {
 
     OldBar64 = 0x0;
-    CopyMem (&OldBar64, Bar, sizeof (UINT32));
+    CopyMem (&OldBar64, Bar, sizeof (UINT64));
     NewBar64 = 0xffffffffffffffff;
 
     IoDev->Pci.Write (IoDev, EfiPciWidthUint32, RegAddress, 2, &NewBar64);
index b1c4f00..3edca2c 100644 (file)
@@ -2523,6 +2523,7 @@ SEnvCmdDriverConfigurationProcessActionRequired (
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_STOP_CONTROLLER), HiiEnvHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_ENTER_STOP_CONTROL), HiiEnvHandle);
     Input (L"", ReturnStr, sizeof (ReturnStr) / sizeof (CHAR16));
+    Print (L"\n");
     BS->DisconnectController (ControllerHandle, DriverImageHandle, ChildHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_CONTROLLER_STOPPED), HiiEnvHandle);
     break;
@@ -2531,6 +2532,7 @@ SEnvCmdDriverConfigurationProcessActionRequired (
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_RESTART_CONTROLLER), HiiEnvHandle);
     PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_ENTER_RESTART_CONTROLLER), HiiEnvHandle);
     Input (L"", ReturnStr, sizeof (ReturnStr) / sizeof (CHAR16));
+    Print (L"\n");
     BS->DisconnectController (ControllerHandle, DriverImageHandle, ChildHandle);
     ContextOverride[0]  = DriverImageHandle;
     ContextOverride[1]  = NULL;