]> git.proxmox.com Git - mirror_edk2.git/blobdiff - InOsEmuPkg/Unix/UnixX64.dsc
Clarify the requirements for the Destination parameter of UnicodeStrToAsciiStr.
[mirror_edk2.git] / InOsEmuPkg / Unix / UnixX64.dsc
index 53d460ce09d1665694efe7e20abe4b4f51ed7c66..50ad39d59f3ae22e9bd56719fe2ab4d048fe3414 100644 (file)
@@ -1,6 +1,6 @@
 ## @file\r
 #\r
-# EFI/Framework Emulation Platform with UEFI HII interface supported.\r
+# UEFI/PI Emulation Platform with UEFI HII interface supported.\r
 #\r
 # The Emulation Platform can be used to debug individual modules, prior to creating\r
 #       a real platform. This also provides an example for how an DSC is created.\r
   PLATFORM_GUID                  = 05FD064D-1073-E844-936C-A0E16317107D\r
   PLATFORM_VERSION               = 0.3\r
   DSC_ SPECIFICATION             = 0x00010005\r
+!if $(BUILD_32)\r
+  OUTPUT_DIRECTORY               = Build/EmuUnixIa32\r
+!else\r
   OUTPUT_DIRECTORY               = Build/EmuUnixX64\r
-  SUPPORTED_ARCHITECTURES        = X64\r
+!endif\r
+\r
+  SUPPORTED_ARCHITECTURES        = X64|IA32\r
   BUILD_TARGETS                  = DEBUG|RELEASE\r
   SKUID_IDENTIFIER               = DEFAULT\r
   FLASH_DEFINITION               = InOsEmuPkg/Unix/UnixX64.fdf\r
   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf\r
   DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf\r
-  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
+  PeiServicesTablePointerLib|InOsEmuPkg/Library/PeiServicesTablePointerLibMagicPage/PeiServicesTablePointerLibMagicPage.inf\r
+  DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf\r
 \r
 \r
 [LibraryClasses.common.SEC]\r
   PeCoffExtraActionLib|InOsEmuPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf\r
   SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf\r
   PpiListLib|InOsEmuPkg/Library/SecPpiListLib/SecPpiListLib.inf\r
+  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
+  TimerLib|InOsEmuPkg/Library/PeiTimerLib/PeiTimerLib.inf\r
 \r
 [LibraryClasses.common.USER_DEFINED, LibraryClasses.common.BASE]\r
   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
   PpiListLib|InOsEmuPkg/Library/SecPpiListLib/SecPpiListLib.inf\r
   PeiServicesLib|InOsEmuPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf\r
 \r
-#  PeCoffExtraActionLib|InOsEmuPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf\r
-\r
 \r
 [LibraryClasses.common.PEIM, LibraryClasses.common.PEI_CORE]\r
   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
   PeCoffExtraActionLib|InOsEmuPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf\r
   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf\r
   SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf\r
+  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf\r
+  TimerLib|InOsEmuPkg/Library/PeiTimerLib/PeiTimerLib.inf\r
 \r
 [LibraryClasses.common.PEI_CORE]\r
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
-  PeiServicesTablePointerLib|InOsEmuPkg/Library/PeiCoreServicesTablePointerLib/PeiCoreServicesTablePointerLib.inf\r
 \r
 [LibraryClasses.common.PEIM]\r
   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
-  PeiServicesTablePointerLib|InOsEmuPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf\r
 \r
 [LibraryClasses.common.DXE_CORE]\r
   HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf\r
   PeCoffExtraActionLib|InOsEmuPkg/Library/DxeEmuPeCoffExtraActionLib/DxeEmuPeCoffExtraActionLib.inf\r
   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf\r
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
+  TimerLib|InOsEmuPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.inf\r
+  EmuThunkLib|InOsEmuPkg/Library/DxeEmuLib/DxeEmuLib.inf\r
 \r
 [LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_APPLICATION]\r
   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
   EmuThunkLib|InOsEmuPkg/Library/DxeEmuLib/DxeEmuLib.inf\r
   PeCoffExtraActionLib|InOsEmuPkg/Library/DxeEmuPeCoffExtraActionLib/DxeEmuPeCoffExtraActionLib.inf\r
+  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
+  TimerLib|InOsEmuPkg/Library/DxeTimerLib/DxeTimerLib.inf\r
 \r
 [LibraryClasses.common.UEFI_DRIVER]\r
   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
 #define BOOT_IN_RECOVERY_MODE                         0x20\r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuBootMode|0\r
   \r
-  gInOsEmuPkgTokenSpaceGuid.PcdEmuApCount|L"0"\r
+  gInOsEmuPkgTokenSpaceGuid.PcdEmuApCount|L"1"\r
 \r
-  gInOsEmuPkgTokenSpaceGuid.PcdEmuPhysicalDisk|L"E:RW;245760;512"\r
-  gInOsEmuPkgTokenSpaceGuid.PcdEmuVirtualDisk|L"FW;40960;512"\r
+  # For a CD-ROM/DVD use L"diag.dmg:RO:2048"\r
+  gInOsEmuPkgTokenSpaceGuid.PcdEmuVirtualDisk|L"disk.dmg:FW"\r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"\r
-  gInOsEmuPkgTokenSpaceGuid.PcdEmuFileSystem|L".!../../../../EdkShellBinPkg/Bin/Ia32/Apps"\r
+  gInOsEmuPkgTokenSpaceGuid.PcdEmuFileSystem|L".!../../../../EdkShellBinPkg/Bin"\r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuSerialPort|L"/dev/ttyS0"\r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuNetworkInterface|L"en0"\r
 \r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuCpuModel|L"Intel(R) Processor Model"\r
   gInOsEmuPkgTokenSpaceGuid.PcdEmuCpuSpeed|L"3000"\r
 \r
+  #  0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8\r
+  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1\r
+\r
 ################################################################################\r
 #\r
 # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform\r
 #       generated for it, but the binary will not be put into any firmware volume.\r
 #\r
 ###################################################################################################\r
+\r
+!ifndef $(SKIP_MAIN_BUILD)\r
+[Components.X64]\r
+  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {\r
+    <LibraryClasses>\r
+      # turn off CR3 write so that DXE IPL will not crash emulator\r
+      BaseLib|UnixPkg/Library/UnixBaseLib/UnixBaseLib.inf\r
+  }\r
+\r
+[Components.IA32]\r
+  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf \r
+!endif\r
+\r
 [Components]\r
-!if $(SEC_ONLY)\r
+!ifdef $(UNIX_SEC_BUILD)\r
   ##\r
-  #  SEC Phase modules\r
+  #  Emulator, OS POSIX application\r
   ##\r
   InOsEmuPkg/Unix/Sec/SecMain.inf\r
-!else\r
+!endif\r
+\r
+!ifndef $(SKIP_MAIN_BUILD)\r
   #\r
   # Generic SEC\r
   #\r
   InOsEmuPkg/FirmwareVolumePei/FirmwareVolumePei.inf\r
   InOsEmuPkg/FlashMapPei/FlashMapPei.inf\r
   InOsEmuPkg/ThunkPpiToProtocolPei/ThunkPpiToProtocolPei.inf\r
-  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {\r
-    <LibraryClasses>\r
-      # turn off CR3 write so that DXE IPL will not crash emulator\r
-      BaseLib|UnixPkg/Library/UnixBaseLib/UnixBaseLib.inf\r
-  }\r
 \r
   ##\r
   #  DXE Phase modules\r
   ##\r
   MdeModulePkg/Core/Dxe/DxeMain.inf {\r
     <LibraryClasses>\r
+      DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
       NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf\r
       NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
   }\r
   MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf\r
   MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {\r
    <LibraryClasses>\r
-      SerialPortLib|InOsEmuPkg/Library/DxeEmuSerialPortLib/DxeEmuSerialPortLib.inf    \r
+      DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
+      SerialPortLib|InOsEmuPkg/Library/DxeEmuStdErrSerialPortLib/DxeEmuStdErrSerialPortLib.inf    \r
   }\r
 \r
-  InOsEmuPkg/MetronomeDxe/Metronome.inf\r
+  MdeModulePkg/Universal/Metronome/Metronome.inf\r
   InOsEmuPkg/RealTimeClockRuntimeDxe/RealTimeClock.inf\r
   InOsEmuPkg/ResetRuntimeDxe/Reset.inf\r
   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
+  EmbeddedPkg/SerialDxe/SerialDxe.inf {\r
+   <LibraryClasses>\r
+      DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
+      SerialPortLib|InOsEmuPkg/Library/DxeEmuSerialPortLib/DxeEmuSerialPortLib.inf    \r
+  }\r
+  \r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
   IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf\r
-  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
+  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf \r
+  #{\r
+  #  <LibraryClasses>  \r
+  #    NULL|InOsEmuPkg/Library/DevicePathTextLib/DevicePathTextLib.inf\r
+  #}\r
+  \r
   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
   InOsEmuPkg/EmuBusDriverDxe/EmuBusDriverDxe.inf\r
   InOsEmuPkg/EmuGopDxe/EmuGopDxe.inf\r
   InOsEmuPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystemDxe.inf\r
-\r
-!if $(0)\r
-  UnixPkg/UnixBlockIoDxe/UnixBlockIo.inf\r
-  UnixPkg/UnixSerialIoDxe/UnixSerialIo.inf\r
-  UnixPkg/UnixConsoleDxe/UnixConsole.inf\r
-  UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.inf\r
-!endif\r
+  InOsEmuPkg/EmuBlockIoDxe/EmuBlockIoDxe.inf\r
+  InOsEmuPkg/EmuSnpDxe/EmuSnpDxe.inf\r
 \r
   MdeModulePkg/Application/HelloWorld/HelloWorld.inf\r
 \r
   #\r
   # Network stack drivers\r
   #\r
-##!if $(NETWORK_SUPPORT) & $(0)\r
-!if $(0)\r
-  UnixPkg/UnixSnpDxe/UnixSnpDxe.inf\r
-!endif\r
   MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf\r
   MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf\r
   MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf\r
       ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
       SortLib|ShellPkg/Library/UefiSortLib/UefiSortLib.inf\r
       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
+      MemoryAllocationLib|InOsEmuPkg/Library/GuardUefiMemoryAllocationLib/GuardUefiMemoryAllocationLib.inf\r
+      SafeBlockIoLib|ShellPkg/Library/SafeBlockIoLib/SafeBlockIoLib.inf\r
+      SafeOpenProtocolLib|ShellPkg/Library/SafeOpenProtocolLib/SafeOpenProtocolLib.inf\r
+\r
     <PcdsFixedAtBuild>\r
       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF\r
       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
   }\r
 !endif\r
 \r
-!endif  \r
+!endif\r
+\r