Code: Select all
EFI_MP_SERVICES_PROTOCOL_GUID dd 3FDDA605h
dw 0A76Eh
dw 4F46h
db 0ADh, 29h, 12h,0F4h, 53h, 1Bh, 3Dh, 08h
EFI_FRAMEWORK_MP_SERVICES_PROTOCOL_GUID dd 0F33261E7h
dw 23CBh
dw 11D5h
db 0BDh, 5Ch, 00h, 80h,0C7h, 3Ch, 88h, 81h
[0] newer MP protocol
[1] older MP protocol in case [0] failed
[2] manual way if [1] failed (INIT-SIPI from BSP, APs Realmode->Switch to long mode->execute code, CLI\HLT\JMP $)
at my ASUS P9D WS MoBo there is [0]
at my older ASUS MoBo there is no [0] but there is [1]
[2] stayed in my project since BIOS version of the project so for UEFI port I just added [1] and later [0]
I suppose UEFI puts APs into hlt state (CLI\HLT\JMP $) at ExitBootServices() and then OS wakes up APs when BSP sends INIT-SIPI to all APs.