On Thu, 20 Dec 2018 at 15:23, Gao, Liming <liming....@intel.com> wrote: > > Jagadeesh: > MdeModulePkg Variable service/Fault tolerant/Nor Flash driver depends on > StandaloneMmServicesTableLib library class header file. This header file is > added into MdePkg. It has two interfaces. One is global gMmst, another is > function InMm(). So, there is no dependency issue here. > And, MdePkg adds one StandaloneMmServicesTableLib library INF with empty > implementation, this library is just for build. It sets gMmst=NULL, and > always return FASLE in InMm(). This library can be used in MdeModulePkg.dsc > to make Variable driver pass build. There is also no dependency issue here. > Last, Platform DSC file will refer to the real StandaloneMmServicesTableLib > library INF from StandaloneMmPkg. >
I think we should avoid the need for InMm() altogether for standalone MM. It will always return TRUE for standalone MM modules, and it will always return FALSE for other modules, so the distinction should be made at build time. This means that we need to refactor the SMM 'server' modules and/or libraries so that any code they cannot share (like boot services invocations) are only included in the classic SMM versions. I have pushed my own prototype code here: https://github.com/ardbiesheuvel/edk2/commits/standalone-mm There is some overlap with Jagadeesh's work. I will work with him directly to resolve this before posting any new revisions. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel