UefiCpuPkg/MpInitLib: Add AP assembly code and MP_CPU_EXCHANGE_INFO
Add assembly code for AP reset vector and the definition of MP_CPU_EXCHANGE_INFO that are used to exchange the data between C code and assembly code when AP wake up. v4: 1. Copy MP_CPU_EXCHANGE_INFO from UefiCpuPkg/CpuMpPei/CpuMpPei.h 2. Copy MpEqu.inc and MpFuncs.nasm from UefiCpuPkg/CpuMpPei. v3: 1. Rename NumApsExecutingLoction to NumApsExecutingLocation 2. Add whitespace after ; in .nasm file 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:
41
UefiCpuPkg/Library/MpInitLib/X64/MpEqu.inc
Normal file
41
UefiCpuPkg/Library/MpInitLib/X64/MpEqu.inc
Normal file
@@ -0,0 +1,41 @@
|
||||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; MpEqu.inc
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; This is the equates file for Multiple Processor support
|
||||
;
|
||||
;-------------------------------------------------------------------------------
|
||||
|
||||
VacantFlag equ 00h
|
||||
NotVacantFlag equ 0ffh
|
||||
|
||||
CPU_SWITCH_STATE_IDLE equ 0
|
||||
CPU_SWITCH_STATE_STORED equ 1
|
||||
CPU_SWITCH_STATE_LOADED equ 2
|
||||
|
||||
LockLocation equ (RendezvousFunnelProcEnd - RendezvousFunnelProcStart)
|
||||
StackStartAddressLocation equ LockLocation + 08h
|
||||
StackSizeLocation equ LockLocation + 10h
|
||||
ApProcedureLocation equ LockLocation + 18h
|
||||
GdtrLocation equ LockLocation + 20h
|
||||
IdtrLocation equ LockLocation + 2Ah
|
||||
BufferStartLocation equ LockLocation + 34h
|
||||
ModeOffsetLocation equ LockLocation + 3Ch
|
||||
NumApsExecutingLoction equ LockLocation + 44h
|
||||
CodeSegmentLocation equ LockLocation + 4Ch
|
||||
DataSegmentLocation equ LockLocation + 54h
|
||||
Cr3Location equ LockLocation + 5Ch
|
||||
|
||||
;-------------------------------------------------------------------------------
|
Reference in New Issue
Block a user