]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix some bugs in FSVariable and BdsPlatform for duet platform.
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 30 Apr 2008 09:08:49 +0000 (09:08 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 30 Apr 2008 09:08:49 +0000 (09:08 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5155 6f19259b-4bc3-4df7-8a09-765794883524

DuetPkg/DuetPkg.dsc
DuetPkg/DuetPkg.fdf
DuetPkg/FSVariable/FSVariable.c
DuetPkg/FSVariable/FSVariable.inf
DuetPkg/Library/DuetBdsLib/BdsPlatform.c

index ba0460ba41c952a3e1cbd8c7bd611de9110224ef..71766c01ebf433df51c01e20022d3e5de4d41c3b 100644 (file)
   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
   MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf\r
   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
-  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf {\r
-    <LibraryClasses>\r
-      DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf\r
-  }\r
   IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf \r
   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
-\r
+  \r
+  \r
   DuetPkg/DataHubGenDxe/DataHubGen.inf\r
   DuetPkg/FvbRuntimeService/DUETFwh.inf\r
   DuetPkg/EfiLdr/EfiLdr.inf\r
   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
   DuetPkg/CpuIoDxe/CpuIo.inf\r
   DuetPkg/CpuDxe/Cpu.inf\r
-  \r
   IntelFrameworkModulePkg/Universal/Legacy8259Dxe/8259.inf\r
   DuetPkg/KbcResetDxe/Reset.inf\r
   DuetPkg/LegacyMetronome/Metronome.inf\r
   DuetPkg/PcRtc/RealTimeClock.inf\r
   DuetPkg/8254TimerDxe/8254Timer.inf\r
   DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf\r
+  DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf\r
+  IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf\r
   IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf\r
-\r
+  \r
   # IDE Support\r
   #IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf\r
   \r
   \r
   # ISA Support\r
   DuetPkg/IsaAcpiDxe/IsaAcpi.inf\r
+  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
+  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
+  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
+\r
+  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
+  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
+  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
+\r
   DuetPkg/BootSector/BootSector.inf\r
 \r
 [BuildOptions.common]\r
index eaa2fdfb91fd93ec068af773d78b8167c1f8e759..52de06a3442395ead04373f9adf9e2a988498991 100644 (file)
@@ -73,7 +73,6 @@ INF  DuetPkg/FSVariable/FSVariable.inf
 INF  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
 INF  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf\r
 INF  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
-INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
 INF  IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf\r
 INF  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
 INF  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
@@ -97,6 +96,8 @@ INF  DuetPkg/LegacyMetronome/Metronome.inf
 INF  DuetPkg/8254TimerDxe/8254Timer.inf\r
 INF  DuetPkg/PcRtc/RealTimeClock.inf\r
 INF  DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf\r
+INF  DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf\r
+INF  IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf\r
 INF  IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf\r
 \r
   # IDE Support\r
@@ -111,6 +112,21 @@ INF  MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
   \r
   # ISA Support\r
 INF  DuetPkg/IsaAcpiDxe/IsaAcpi.inf\r
+INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
+INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
+INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
+\r
+INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
+INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
+INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
+\r
+FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {\r
+  SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi\r
+  }\r
+\r
+FILE FREEFORM = 7BB28B99-61BB-11D5-9A5D-0090273FC14D {\r
+  SECTION RAW = MdeModulePkg/Logo/Logo.bmp\r
+  }\r
 \r
 [Rule.Common.PEI_CORE]\r
   FILE PEI_CORE = $(NAMED_GUID) {\r
index cfe76ccc9500d9a8298fb293733bac125d290227..0977887818e51756459a5f9071729db48dd509e4 100644 (file)
@@ -743,7 +743,6 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
   \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   //\r
   //  The size of the VariableName, including the Unicode Null in bytes plus\r
   //  the DataSize is limited to maximum size of MAX_HARDWARE_ERROR_VARIABLE_SIZE (32K)\r
@@ -760,16 +759,7 @@ Returns:
       return EFI_INVALID_PARAMETER;\r
     }  \r
   }  \r
-#else  \r
-  //\r
-  //  The size of the VariableName, including the Unicode Null in bytes plus\r
-  //  the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
-  //\r
-  if ((DataSize > MAX_VARIABLE_SIZE) ||\r
-      (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }  \r
-#endif\r
+\r
   //\r
   // Check whether the input variable is already existed\r
   //\r
@@ -984,7 +974,6 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
 EFI_STATUS\r
 EFIAPI\r
 QueryVariableInfo (\r
@@ -1028,21 +1017,12 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
   \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)  \r
   if((Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) == 0) {\r
     //\r
     // Make sure the Attributes combination is supported by the platform.\r
     //\r
     return EFI_UNSUPPORTED;  \r
   }  \r
-#else\r
-  if((Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)) == 0) {\r
-    //\r
-    // Make sure the Attributes combination is supported by the platform.\r
-    //\r
-    return EFI_UNSUPPORTED;  \r
-  } \r
-#endif  \r
   else if ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == EFI_VARIABLE_RUNTIME_ACCESS) {\r
     //\r
     // Make sure if runtime bit is set, boot service bit is set also.\r
@@ -1070,14 +1050,12 @@ Returns:
   //\r
   *MaximumVariableSize = MAX_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   //\r
   // Harware error record variable needs larger size.\r
   //\r
   if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {\r
     *MaximumVariableSize = MAX_HARDWARE_ERROR_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
   }\r
-#endif\r
   \r
   //\r
   // Point to the starting address of the variables.\r
@@ -1124,7 +1102,6 @@ Returns:
 \r
   return EFI_SUCCESS;\r
 }\r
-#endif\r
 \r
 EFI_STATUS\r
 EFIAPI\r
@@ -1299,9 +1276,7 @@ Returns:
   SystemTable->RuntimeServices->GetNextVariableName = GetNextVariableName;\r
   SystemTable->RuntimeServices->SetVariable         = SetVariable;\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   SystemTable->RuntimeServices->QueryVariableInfo   = QueryVariableInfo;\r
-#endif\r
 \r
   //\r
   // Now install the Variable Runtime Architectural Protocol on a new handle\r
index d2c29e926cbb6a7f8a5deea8616aaa5710221ef5..52a805d0361625e613accd6a0390dc237f1c0f9c 100644 (file)
@@ -66,6 +66,7 @@
 \r
 [Pcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize\r
 \r
 [Depex]\r
   TRUE\r
index 71e9b5db507fb88eb8bc01f7f52dc16e044a640d..f73f824f2d7ce4c65b9d0675316ee0bdd0de87cd 100644 (file)
@@ -48,9 +48,8 @@ Returns:
 \r
 --*/\r
 {\r
-  EFI_STATUS                  Status;\r
-  EFI_HOB_HANDOFF_INFO_TABLE  *HobList;\r
-  EFI_HOB_HANDOFF_INFO_TABLE  *HobStart;\r
+  EFI_PEI_HOB_POINTERS        GuidHob;\r
+  EFI_PEI_HOB_POINTERS        HobStart;\r
   EFI_PHYSICAL_ADDRESS        *Table;\r
   UINTN                       Index;\r
   EFI_GUID                    *TableGuidArray[] = {\r
@@ -60,19 +59,14 @@ Returns:
   //\r
   // Get Hob List\r
   //\r
-  Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, (VOID *) &HobList);\r
-  if (EFI_ERROR (Status)) {\r
-    return;\r
-  }\r
-\r
+  HobStart.Raw = GetHobList ();\r
   //\r
   // Iteratively add ACPI Table, SMBIOS Table, MPS Table to EFI System Table\r
   //\r
   for (Index = 0; Index < sizeof (TableGuidArray) / sizeof (*TableGuidArray); ++Index) {\r
-    HobStart = HobList;\r
-    Table = NULL;\r
-    Table = GetNextGuidHob (TableGuidArray[Index], &HobStart);\r
-    if (!EFI_ERROR (Status)) {\r
+    GuidHob.Raw = GetNextGuidHob (TableGuidArray[Index], HobStart.Raw);\r
+    if (GuidHob.Raw != NULL) {\r
+      Table = GET_GUID_HOB_DATA (GuidHob.Guid);\r
       if (Table != NULL) {\r
         //\r
         // Check if Mps Table/Smbios Table/Acpi Table exists in E/F seg,\r
@@ -152,7 +146,7 @@ UpdateMemoryMap (
   )\r
 {\r
   EFI_STATUS                  Status;\r
-  EFI_HOB_HANDOFF_INFO_TABLE  *HobList;\r
+  EFI_PEI_HOB_POINTERS        GuidHob;\r
   VOID                        *Table;\r
   MEMORY_DESC_HOB             MemoryDescHob;\r
   UINTN                       Index;\r
@@ -161,12 +155,18 @@ UpdateMemoryMap (
   //\r
   // Get Hob List\r
   //\r
-  Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, (VOID *) &HobList);\r
-  if (EFI_ERROR (Status)) {\r
+  GuidHob.Raw = GetHobList();\r
+  \r
+  GuidHob.Raw = GetNextGuidHob (&gEfiLdrMemoryDescriptorGuid, GuidHob.Raw);\r
+  if (GuidHob.Raw == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "Fail to get gEfiLdrMemoryDescriptorGuid from GUID HOB LIST!\n"));\r
+    return;\r
+  }\r
+  Table = GET_GUID_HOB_DATA (GuidHob.Guid);\r
+  if (Table == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "Fail to get gEfiLdrMemoryDescriptorGuid from GUID HOB LIST!\n"));\r
     return;\r
   }\r
-\r
-  Table = GetNextGuidHob (&gEfiLdrMemoryDescriptorGuid, &HobList);\r
   MemoryDescHob.MemDescCount = *(UINTN *)Table;\r
   MemoryDescHob.MemDesc      = *(EFI_MEMORY_DESCRIPTOR **)((UINTN)Table + sizeof(UINTN));\r
 \r
@@ -382,6 +382,19 @@ Returns:
   // Fixup Tasble CRC after we updated Firmware Vendor and Revision\r
   //\r
   gBS->CalculateCrc32 ((VOID *) gST, sizeof (EFI_SYSTEM_TABLE), &gST->Hdr.CRC32);\r
+\r
+  GetSystemTablesFromHob ();\r
+\r
+  UpdateMemoryMap ();\r
+  \r
+  //\r
+  // Append Usb Keyboard short form DevicePath into "ConInDev" \r
+  //\r
+  BdsLibUpdateConsoleVariable (\r
+    VarConsoleInpDev,\r
+    (EFI_DEVICE_PATH_PROTOCOL *) &gUsbClassKeyboardDevicePath,\r
+    NULL\r
+    );\r
 }\r
 \r
 UINT64\r
@@ -407,23 +420,27 @@ Returns:
   UINTN                                    BufferSize;\r
   UINT32                                   Index;\r
   UINT32                                   Number;\r
-  VOID                                     *HobList;\r
-  EFI_STATUS                               Status;\r
+  EFI_PEI_HOB_POINTERS                     GuidHob;\r
 \r
   BufferSize = 0;\r
   //\r
   // Get Hob List from configuration table\r
   //\r
-  Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, &HobList);\r
-  if (EFI_ERROR (Status)) {\r
-    return 0;\r
-  }\r
+  GuidHob.Raw = GetHobList ();\r
 \r
   //\r
   // Get PciExpressAddressInfo Hob\r
   //\r
-  PciExpressBaseAddressInfo = NULL;\r
-  PciExpressBaseAddressInfo = GetNextGuidHob (&gEfiPciExpressBaseAddressGuid, &HobList);\r
+  GuidHob.Raw = GetNextGuidHob (&gEfiPciExpressBaseAddressGuid, GuidHob.Raw);\r
+  if (GuidHob.Raw == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "Fail to get gEfiPciExpressBaseAddressGuid from GUID HOB\n"));\r
+    return 0;\r
+  }\r
+  PciExpressBaseAddressInfo = (EFI_PCI_EXPRESS_BASE_ADDRESS_INFORMATION *) GET_GUID_HOB_DATA (GuidHob.Guid);\r
+  if (PciExpressBaseAddressInfo == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "Fail to get gEfiPciExpressBaseAddressGuid from GUID HOB\n"));\r
+    return 0;\r
+  }\r
 \r
   //\r
   // Search the PciExpress Base Address in the Hob for current RootBridge\r
@@ -585,7 +602,6 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
 EFI_STATUS\r
 GetGopDevicePath (\r
    IN  EFI_DEVICE_PATH_PROTOCOL *PciDevicePath,\r
@@ -670,7 +686,6 @@ GetGopDevicePath (
 \r
   return EFI_SUCCESS;\r
 }\r
-#endif\r
 \r
 EFI_STATUS\r
 PreparePciVgaDevicePath (\r
@@ -696,9 +711,7 @@ Returns:
 {\r
   EFI_STATUS                Status;\r
   EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   EFI_DEVICE_PATH_PROTOCOL  *GopDevicePath;\r
-#endif  \r
 \r
   DevicePath = NULL;\r
   Status = gBS->HandleProtocol (\r
@@ -710,10 +723,8 @@ Returns:
     return Status;\r
   }\r
   \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   GetGopDevicePath (DevicePath, &GopDevicePath);\r
   DevicePath = GopDevicePath;\r
-#endif\r
 \r
   BdsLibUpdateConsoleVariable (VarConsoleOut, DevicePath, NULL);\r
   \r
@@ -839,6 +850,7 @@ Returns:
         // Add IsaKeyboard to ConIn,\r
         // add IsaSerial to ConOut, ConIn, ErrOut\r
         //\r
+        DEBUG ((EFI_D_INFO, "Find the LPC Bridge device\n"));\r
         PrepareLpcBridgeDevicePath (HandleBuffer[Index]);\r
         continue;\r
       }\r
@@ -849,6 +861,7 @@ Returns:
         //\r
         // Add them to ConOut, ConIn, ErrOut.\r
         //\r
+        DEBUG ((EFI_D_INFO, "Find the 16550 SERIAL device\n"));\r
         PreparePciSerialDevicePath (HandleBuffer[Index]);\r
         continue;\r
       }\r
@@ -861,6 +874,7 @@ Returns:
       //\r
       // Add them to ConOut.\r
       //\r
+      DEBUG ((EFI_D_INFO, "Find the VGA device\n"));\r
       PreparePciVgaDevicePath (HandleBuffer[Index]);\r
       continue;\r
     }\r