mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 16:14:04 +02:00
UefiCpuPkg/MpInitLib: Fix typo and clean up the code
1. Rename NumApsExecutingLoction to NumApsExecutingLocation 2. Update some comments in NASM files. 3. Remove PeiCpuMpData from MP_CPU_EXCHANGE_INFO. Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
d94e5f6729
commit
8396e2dd30
@ -33,7 +33,7 @@ GdtrLocation equ LockLocation + 10h
|
|||||||
IdtrLocation equ LockLocation + 16h
|
IdtrLocation equ LockLocation + 16h
|
||||||
BufferStartLocation equ LockLocation + 1Ch
|
BufferStartLocation equ LockLocation + 1Ch
|
||||||
ModeOffsetLocation equ LockLocation + 20h
|
ModeOffsetLocation equ LockLocation + 20h
|
||||||
NumApsExecutingLoction equ LockLocation + 24h
|
NumApsExecutingLocation equ LockLocation + 24h
|
||||||
CodeSegmentLocation equ LockLocation + 28h
|
CodeSegmentLocation equ LockLocation + 28h
|
||||||
DataSegmentLocation equ LockLocation + 2Ch
|
DataSegmentLocation equ LockLocation + 2Ch
|
||||||
|
|
||||||
|
@ -71,8 +71,8 @@ o32 lidt [cs:si]
|
|||||||
xor ax, ax
|
xor ax, ax
|
||||||
mov ds, ax
|
mov ds, ax
|
||||||
|
|
||||||
mov eax, cr0 ;Get control register 0
|
mov eax, cr0 ; Get control register 0
|
||||||
or eax, 000000003h ;Set PE bit (bit #0) & MP
|
or eax, 000000003h ; Set PE bit (bit #0) & MP
|
||||||
mov cr0, eax
|
mov cr0, eax
|
||||||
|
|
||||||
jmp 0:strict dword 0 ; far jump to protected mode
|
jmp 0:strict dword 0 ; far jump to protected mode
|
||||||
@ -95,7 +95,7 @@ TestLock:
|
|||||||
jz TestLock
|
jz TestLock
|
||||||
|
|
||||||
mov edi, esi
|
mov edi, esi
|
||||||
add edi, NumApsExecutingLoction
|
add edi, NumApsExecutingLocation
|
||||||
inc dword [edi]
|
inc dword [edi]
|
||||||
mov ebx, [edi]
|
mov ebx, [edi]
|
||||||
|
|
||||||
@ -133,9 +133,9 @@ CProcedureInvoke:
|
|||||||
add edi, ApProcedureLocation
|
add edi, ApProcedureLocation
|
||||||
mov eax, [edi]
|
mov eax, [edi]
|
||||||
|
|
||||||
call eax ; invoke C function
|
call eax ; Invoke C function
|
||||||
|
|
||||||
jmp $ ; never reach here
|
jmp $ ; Never reach here
|
||||||
RendezvousFunnelProcEnd:
|
RendezvousFunnelProcEnd:
|
||||||
|
|
||||||
;-------------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------------
|
||||||
|
@ -56,7 +56,6 @@ typedef struct {
|
|||||||
UINTN CodeSegment;
|
UINTN CodeSegment;
|
||||||
UINTN DataSegment;
|
UINTN DataSegment;
|
||||||
UINTN Cr3;
|
UINTN Cr3;
|
||||||
PEI_CPU_MP_DATA *PeiCpuMpData;
|
|
||||||
} MP_CPU_EXCHANGE_INFO;
|
} MP_CPU_EXCHANGE_INFO;
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
@ -33,7 +33,7 @@ GdtrLocation equ LockLocation + 20h
|
|||||||
IdtrLocation equ LockLocation + 2Ah
|
IdtrLocation equ LockLocation + 2Ah
|
||||||
BufferStartLocation equ LockLocation + 34h
|
BufferStartLocation equ LockLocation + 34h
|
||||||
ModeOffsetLocation equ LockLocation + 3Ch
|
ModeOffsetLocation equ LockLocation + 3Ch
|
||||||
NumApsExecutingLoction equ LockLocation + 44h
|
NumApsExecutingLocation equ LockLocation + 44h
|
||||||
CodeSegmentLocation equ LockLocation + 4Ch
|
CodeSegmentLocation equ LockLocation + 4Ch
|
||||||
DataSegmentLocation equ LockLocation + 54h
|
DataSegmentLocation equ LockLocation + 54h
|
||||||
Cr3Location equ LockLocation + 5Ch
|
Cr3Location equ LockLocation + 5Ch
|
||||||
|
@ -57,7 +57,7 @@ BITS 16
|
|||||||
mov di, CodeSegmentLocation
|
mov di, CodeSegmentLocation
|
||||||
mov edx, [di]
|
mov edx, [di]
|
||||||
mov di, ax
|
mov di, ax
|
||||||
sub di, 02h
|
sub di, 02h
|
||||||
mov [di],dx ; Patch long mode CS
|
mov [di],dx ; Patch long mode CS
|
||||||
sub di, 04h
|
sub di, 04h
|
||||||
add eax, ebx
|
add eax, ebx
|
||||||
@ -117,7 +117,7 @@ TestLock:
|
|||||||
jz TestLock
|
jz TestLock
|
||||||
|
|
||||||
mov edi, esi
|
mov edi, esi
|
||||||
add edi, NumApsExecutingLoction
|
add edi, NumApsExecutingLocation
|
||||||
inc dword [edi]
|
inc dword [edi]
|
||||||
mov ebx, [edi]
|
mov ebx, [edi]
|
||||||
|
|
||||||
@ -138,8 +138,8 @@ Releaselock:
|
|||||||
xchg qword [edi], rax
|
xchg qword [edi], rax
|
||||||
|
|
||||||
CProcedureInvoke:
|
CProcedureInvoke:
|
||||||
push rbp ; push BIST data at top of AP stack
|
push rbp ; Push BIST data at top of AP stack
|
||||||
xor rbp, rbp ; clear ebp for call stack trace
|
xor rbp, rbp ; Clear ebp for call stack trace
|
||||||
push rbp
|
push rbp
|
||||||
mov rbp, rsp
|
mov rbp, rsp
|
||||||
|
|
||||||
@ -157,9 +157,9 @@ CProcedureInvoke:
|
|||||||
mov rax, qword [edi]
|
mov rax, qword [edi]
|
||||||
|
|
||||||
sub rsp, 20h
|
sub rsp, 20h
|
||||||
call rax ; invoke C function
|
call rax ; Invoke C function
|
||||||
add rsp, 20h
|
add rsp, 20h
|
||||||
jmp $
|
jmp $ ; Should never reach here
|
||||||
|
|
||||||
RendezvousFunnelProcEnd:
|
RendezvousFunnelProcEnd:
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ ASM_PFX(AsmGetAddressMap):
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------------
|
||||||
;AsmExchangeRole procedure follows. This procedure executed by current BSP, that is
|
;AsmExchangeRole procedure follows. This procedure executed by current BSP, that is
|
||||||
;about to become an AP. It switches it'stack with the current AP.
|
;about to become an AP. It switches its stack with the current AP.
|
||||||
;AsmExchangeRole (IN CPU_EXCHANGE_INFO *MyInfo, IN CPU_EXCHANGE_INFO *OthersInfo);
|
;AsmExchangeRole (IN CPU_EXCHANGE_INFO *MyInfo, IN CPU_EXCHANGE_INFO *OthersInfo);
|
||||||
;-------------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------------
|
||||||
global ASM_PFX(AsmExchangeRole)
|
global ASM_PFX(AsmExchangeRole)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user