## @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
\r
gInOsEmuPkgTokenSpaceGuid.PcdEmuApCount|L"1"\r
\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"\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/EmuGopDxe/EmuGopDxe.inf\r
InOsEmuPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystemDxe.inf\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) \r
- InOsEmuPkg/EmuSnpDxe/EmuSnpDxe.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