Chen Fan [mailto:chen.fan.f...@cn.fujitsu.com] wrote:
]This series patchset try to implement Mp Service protocol in UefiCpuPkg, ]Jordan had implemented the startup APs code, and I try to add more ]initialization code to let all APs work up, this Mp Service protocol's ]implementation use EmulatorPkg/MpService for reference. ] ]TODO: ] 1) StartupThisAP/StartAllAps: when Timeout expires before AP returns ] from Procedure, constrainedly terminate the executed Procedure. ] 2) Support SwitchBSP(). (Or it is unnecessary) ] ]Any Comment is welcome. Hello Chen Fan, I gave this patch set a try using Windows and Microsoft build tools. To build, I had to: 1) Add masm versions of MpAsm.s. I think EDK2 requires that code can build using Microsoft tools. 2) Turn off some Microsoft compiler warnings by adding to CpuDxe.inf: +[BuildOptions] + MSFT:*_*_*_CC_FLAGS = /wd4054 /wd4244 /wd4245 With this patch set, the APs are launched even when a project never uses mpservice. To minimize boot time it would be good if no AP launch code runs unless mpservice is actually used. There is a problem when the AP init code runs and tries to load the GDT while in 32-bit mode. This patch set uses the same GDT as the BSP, which may be above 4GB and unusable for 32-bit AP init code. My test returned the wrong cpucount because function AsmApEntryPoint loops, causing cpump.c to execute mCpuIndex++ several times. Thanks, Scott ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel