<div dir="ltr">Hello Tang,<div><br></div><div>Not sure what is actually your question here? If you have 4 cores in your mainboard, the BIOS (any BIOS, looking into SEC + PEI phases), will work on the following way (more or less, it is view from 37000 feet, where commercial jetliners operate):</div><div>[1] BIOS on main CPU will start after EC configures PMIC and PCH does the original HECI setup;</div><div>[2] All four cores will be let go out of hard reset state, but they will compete who is the system one, and who are so-called application processors; The first which will configure the bare minimum wins, and it'll be Core 0 (called BSP - BootStrap Processor), all others will be Cores X, X = [1..3], application ones;</div><div>[3] Core 0 (BSP) will continue running BIOS code, all others (application) cores will be put in waiting state, waiting for SIPI (Startup Inter-Processor Interrupt), send via BSP's LAPIC (MSIs - Message Serviced Interrupts are not allowed in BIOS);</div><div>[4] While BSP runs, it runs also entering several times SMM mode using SMI, in order to set ACPI (Advanced Configuration and Power Interface) tables, or similar...</div><div><br></div><div>Coreboot people can compare if the similar, described above) is happening with Coreboot code. Should, in my opinion (so NO multiprocessing done in Coreboot, my best guess). For x86 and x86_64 architectures.</div><div><br></div><div>Zoran</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 3, 2017 at 4:20 AM, Tang Tank <span dir="ltr"><<a href="mailto:js_nj_tanktang@outlook.com" target="_blank">js_nj_tanktang@outlook.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi all,<br>
<br>
<br>
   For smm handler (func smm_handler_start) in coreboot/src/cpu/x86/smm/smm_<wbr>module_handler.c,<br>
there may be a logical error.<br>
<br>
   If I have 4 cores in my mainboard in the following special conditions:<br>
   1. core0 run into smm_handler_start and smi_handler_status will be SMI_LOCKED.<br>
   2. core1/2 run into smm_handler_start and pause since smi_handler_status is locked.<br>
   3. core0 release smi_handler_status and then core4 run into smm_handler_start, it will do<br>
       southbridge_smi_handler again.<br>
<br>
   So is there have a reliable way of doing smm multi processors services in coreboot?<br>
<br>
<br>
Thanks<br>
<span class="HOEnZb"><font color="#888888">Tank<br>
 <br>
<br>
--<br>
coreboot mailing list: <a href="mailto:coreboot@coreboot.org">coreboot@coreboot.org</a><br>
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" rel="noreferrer" target="_blank">https://www.coreboot.org/<wbr>mailman/listinfo/coreboot</a><br>
</font></span></blockquote></div><br></div>