MultiArchUefiPkg
MultiArchUefiPkg copied to clipboard
Multi-Architecture UEFI Environment Driver
More silent corruption due to lack of reentrance. But it's not enough to wrap uc_mem_protect...interrupts can be re-enabled inside JITted code (or really anytime) due to TPL manipulation, so need...
Maybe venid/devid based, maybe signature or name based. Basically provide an escape hatch for integrators to deal with crazy issues like https://github.com/intel/MultiArchUefiPkg/issues/48. This would also need a way to negotiate...
If an emulated image crashes and gets unloaded, it may have left event handlers behind which will of course bomb out. This is a good reason for always enabling MAU_WRAPPED_ENTRY_POINTS...
Another mechanism could be to simply ignore reads/writes to bottom 64k, going on the theory this isn't the first or the last bit of code that accidentally scribbles something around...
https://github.com/intel/MultiArchUefiPkg/blob/5596cb031c88dab1b620afd116d7a3b55f0d4403/Drivers/Emulator/Cpu.c#L313 AArch64 has a 16-byte red zone.
https://github.com/intel/MultiArchUefiPkg/blob/5596cb031c88dab1b620afd116d7a3b55f0d4403/Drivers/Emulator/Image.c#L169 Nece_sss_ary
Make it match reality. https://github.com/intel/MultiArchUefiPkg/blob/5596cb031c88dab1b620afd116d7a3b55f0d4403/Drivers/Emulator/Image.c#L157
These are not used by anything, and thus can cause a potential conflict. https://github.com/intel/MultiArchUefiPkg/blob/5596cb031c88dab1b620afd116d7a3b55f0d4403/Drivers/Emulator/RISCV64/Emulator.c#L263
https://github.com/intel/MultiArchUefiPkg/blob/5596cb031c88dab1b620afd116d7a3b55f0d4403/Drivers/Emulator/RISCV64/Emulator.c#L33
Esp. when trying emulator on existing systems with unknown firmware, it's useful to know how compatible the system is. E.g. does it have functioning MMU? Can you correctly set exception...