BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4504 The BaseRngLibTimerLib allows to generate number based on a timer. This mechanism allows to have a basic non-secure implementation for non-production platforms. To bind and identify Random Number Generators implementations with a GUID, an unsafe GUID should be added. This GUID cannot be added to the MdePkg unless it is also added to a specification. To keep the MdePkg self-contained, copy the BaseRngLibTimerLib to the MdeModulePkg. This will allow to define an unsafe Rng GUID in a later patch in the MdeModulePkg. The MdePkg implementation will be removed later. This allows to give some time to platform owners to switch to the MdeModulePkg implementation. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Tested-by: Kun Qin <kun.qin@microsoft.com> |
||
|---|---|---|
| .. | ||
| Application/RedfishPlatformConfig | ||
| AutoScanPei | ||
| BootModePei | ||
| CpuRuntimeDxe | ||
| EmuBlockIoDxe | ||
| EmuBusDriverDxe | ||
| EmuGopDxe | ||
| EmuSimpleFileSystemDxe | ||
| EmuSnpDxe | ||
| EmuThunkDxe | ||
| FirmwareVolumePei | ||
| FlashMapPei | ||
| FvbServicesRuntimeDxe | ||
| Include | ||
| Library | ||
| PlatformCI | ||
| PlatformSmbiosDxe | ||
| RealTimeClockRuntimeDxe | ||
| ResetRuntimeDxe | ||
| Sec | ||
| ThunkPpiToProtocolPei | ||
| TimerDxe | ||
| Unix | ||
| Win | ||
| build.sh | ||
| EmulatorPkg.ci.yaml | ||
| EmulatorPkg.dec | ||
| EmulatorPkg.dsc | ||
| EmulatorPkg.fdf | ||
| Readme.md | ||
Overview
EmulatorPkg provides an environment where a UEFI environment can be emulated under an environment where a full UEFI compatible environment is not possible. (For example, running under an OS where an OS process hosts the UEFI emulation environment.)
https://github.com/tianocore/tianocore.github.io/wiki/EmulatorPkg
Status
- Builds and runs under
- a posix-like environment with X windows
- Linux
- OS X
- Windows environment
- Win10 (verified)
- Win8 (not verified)
- a posix-like environment with X windows
How to Build & Run
You can use the following command to build.
-
32bit emulator in Windows:
build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a IA32 -
64bit emulator in Windows:
build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a X64 -
32bit emulator in Linux:
build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a IA32 -
64bit emulator in Linux:
build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a X64
You can start/run the emulator using the following command:
-
32bit emulator in Windows:
cd Build\EmulatorIA32\DEBUG_VS2017\IA32\ && WinHost.exe -
64bit emulator in Windows:
cd Build\EmulatorX64\DEBUG_VS2017\X64\ && WinHost.exe -
32bit emulator in Linux:
cd Build/EmulatorIA32/DEBUG_GCC5/IA32/ && ./Host -
64bit emulator in Linux:
cd Build/EmulatorX64/DEBUG_GCC5/X64/ && ./Host
On posix-like environment with the bash shell you can use EmulatorPkg/build.sh to simplify building and running emulator.
For example, to build + run:
$ EmulatorPkg/build.sh
$ EmulatorPkg/build.sh run
The build architecture will match your host machine's architecture.
On X64 host machines, you can build + run IA32 mode as well:
$ EmulatorPkg/build.sh -a IA32
$ EmulatorPkg/build.sh -a IA32 run