## @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
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
\r
+[LibraryClasses.common.SEC]\r
+ PeiServicesLib|InOsEmuPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf\r
+ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
+ PeCoffGetEntryPointLib|InOsEmuPkg/Library/PeiEmuPeCoffGetEntryPointLib/PeiEmuPeCoffGetEntryPointLib.inf\r
+ PeCoffExtraActionLib|InOsEmuPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf\r
+ SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf\r
+ PpiListLib|InOsEmuPkg/Library/SecPpiListLib/SecPpiListLib.inf\r
\r
[LibraryClasses.common.USER_DEFINED, LibraryClasses.common.BASE]\r
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf\r
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
- PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf\r
-\r
+ PpiListLib|InOsEmuPkg/Library/SecPpiListLib/SecPpiListLib.inf\r
ThunkPpiList|InOsEmuPkg/Library/ThunkPpiList/ThunkPpiList.inf\r
ThunkProtocolList|InOsEmuPkg/Library/ThunkProtocolList/ThunkProtocolList.inf\r
+ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
+ PpiListLib|InOsEmuPkg/Library/SecPpiListLib/SecPpiListLib.inf\r
+ PeiServicesLib|InOsEmuPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf\r
\r
\r
[LibraryClasses.common.PEIM, LibraryClasses.common.PEI_CORE]\r
PeCoffGetEntryPointLib|InOsEmuPkg/Library/PeiEmuPeCoffGetEntryPointLib/PeiEmuPeCoffGetEntryPointLib.inf\r
PeCoffExtraActionLib|InOsEmuPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf\r
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf\r
+ SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf\r
\r
[LibraryClasses.common.PEI_CORE]\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
- PeiServicesTablePointerLib|InOsEmuPkg/Library/PeiCoreServicesTablePointerLib/PeiCoreServicesTablePointerLib.inf\r
- SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.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
\r
gInOsEmuPkgTokenSpaceGuid.PcdEmuFirmwareFdSize|0x002a0000\r
gInOsEmuPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize|0x10000\r
- gInOsEmuPkgTokenSpaceGuid.PcdEmuFirmwareVolume|L"../Fv/Fv_Recovery.fd"\r
+ gInOsEmuPkgTokenSpaceGuid.PcdEmuFirmwareVolume|L"../FV/FV_RECOVERY.fd"\r
\r
gInOsEmuPkgTokenSpaceGuid.PcdEmuMemorySizeForSecMain|L"64!64"\r
- \r
+\r
+!if $(BUILD_NEW_SHELL)\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }\r
+!else\r
+!if $(USE_NEW_SHELL)\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }\r
+!endif\r
+!endif\r
+\r
#define BOOT_WITH_FULL_CONFIGURATION 0x00\r
#define BOOT_WITH_MINIMAL_CONFIGURATION 0x01\r
#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02\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".!../../../../ShellBinPkg/UefiShell/X64!../../../../Build/Shell/DEBUG_XCLANG"\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
+[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
+\r
[Components]\r
!if $(SEC_ONLY)\r
##\r
- # SEC Phase modules\r
+ # Emulator, OS POSIX application\r
##\r
InOsEmuPkg/Unix/Sec/SecMain.inf\r
!else\r
+ #\r
+ # Generic SEC\r
+ #\r
+ InOsEmuPkg/Sec/Sec.inf\r
+\r
##\r
# PEI Phase modules\r
##\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
}\r
MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf\r
- MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {\r
- <LibraryClasses>\r
- SerialPortLib|InOsEmuPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf\r
- }\r
+ MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf \r
\r
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf\r
InOsEmuPkg/BootModePei/BootModePei.inf\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
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf\r
MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {\r
<LibraryClasses>\r
- SerialPortLib|InOsEmuPkg/Library/DxeEmuSerialPortLib/DxeEmuSerialPortLib.inf \r
+ SerialPortLib|InOsEmuPkg/Library/DxeEmuStdErrSerialPortLib/DxeEmuStdErrSerialPortLib.inf \r
}\r
\r
InOsEmuPkg/MetronomeDxe/Metronome.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
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
}\r
\r
-!if $(COMPILE_BINS)\r
+!if $(BUILD_FAT)\r
FatPkg/EnhancedFatDxe/Fat.inf\r
!endif\r
+\r
+!if $(BUILD_NEW_SHELL)\r
+ ShellPkg/Application/Shell/Shell.inf {\r
+ <LibraryClasses>\r
+ ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf\r
+ NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf\r
+ NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf\r
+ HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf\r
+ FileHandleLib|ShellPkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf\r
+ ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
+ SortLib|ShellPkg/Library/UefiSortLib/UefiSortLib.inf\r
+ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.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
+ gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000\r
+ }\r
+!endif\r
+\r
!endif \r