2 Definitions to install Multiple Processor PPI.
4 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef _CPU_MP_PEI_H_
16 #define _CPU_MP_PEI_H_
21 #include <Library/BaseLib.h>
22 #include <Library/HobLib.h>
23 #include <Library/PeimEntryPoint.h>
24 #include <Library/UefiCpuLib.h>
27 // AP reset code information
30 UINT8
*RendezvousFunnelAddress
;
31 UINTN PModeEntryOffset
;
32 UINTN LModeEntryOffset
;
33 UINTN RendezvousFunnelSize
;
34 } MP_ASSEMBLY_ADDRESS_MAP
;
50 UINT32 DefaultSize
: 1;
51 UINT32 Granularity
: 1;
58 // MP CPU exchange information for AP reset code
65 IA32_DESCRIPTOR GdtrProfile
;
66 IA32_DESCRIPTOR IdtrProfile
;
69 UINTN NumApsExecuting
;
72 } MP_CPU_EXCHANGE_INFO
;
77 Assembly code to get starting address and size of the rendezvous entry for APs.
78 Information for fixing a jump instruction in the code is also returned.
80 @param AddressMap Output buffer for address map information.
85 OUT MP_ASSEMBLY_ADDRESS_MAP
*AddressMap
89 Assembly code to load GDT table and update segment accordingly.
91 @param Gdtr Pointer to GDT descriptor
96 IN IA32_DESCRIPTOR
*Gdtr