Support SMRR for x86 emulation
Goal
The general goal is to support SMRR for x86. This is mainly to be able to query where SMM starts and enhance debuggability for emulated x86 platforms.
Technical details
Currently, the CpuFeatureLib (https://github.com/tianocore/edk2/blob/71606314f80500ff0849f66553fad0da11bf4beb/OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c#L91) from OvmfPkg on EDK2 will not program the SMRR completely during the SMM base relocation time. The relocation will succeed silently during boot but from that point and on, where the SMBASE is can only be found from the debug prints. (I tried to read memory content from default SMBASE, 0x30000, through windbg + exdi + gdbserver, it does not give valid content).
I think providing valid SMRR support will allow the bugs from SMI entry block much easier to investigate and provide better understanding of the overall SMM environment.