Skip to content

Commit

Permalink
[CHERRY-PICK] UefiCpuPkg/MpInitLib: Update the comments of _CPU_MP_DATA.
Browse files Browse the repository at this point in the history
No functional changes in this patch.

Updates the comments of _CPU_MP_DATA to delcared that duplications in
CpuMpData are present to avoid to be direct accessed and comprehended
 in assembly code. CpuMpData: Intended for use in C code while
 ExchangeInfo are used in assembly code in this module.

This patch deletes the unnecessary comments in CpuMpData, since
CpuMpData is no longer responsible for passing information from PEI to
DXE.

Signed-off-by: Yuanhao Xie <yuanhao.xie@intel.com>
Cc: Laszlo Ersek lersek@redhat.com
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
  • Loading branch information
xieyuanh authored and kenlautner committed May 21, 2024
1 parent e0afbf0 commit 94c9ad0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
2 changes: 2 additions & 0 deletions UefiCpuPkg/Library/MpInitLib/MpEqu.inc
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ endstruc

;
; Equivalent NASM structure of MP_CPU_EXCHANGE_INFO
; Assembly routines should refrain from directly interacting with
; the internal details of CPU_MP_DATA.
;
struc MP_CPU_EXCHANGE_INFO
.StackStart: CTYPE_UINTN 1
Expand Down
13 changes: 7 additions & 6 deletions UefiCpuPkg/Library/MpInitLib/MpLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,8 @@ typedef struct _CPU_MP_DATA CPU_MP_DATA;
// MP CPU exchange information for AP reset code
// This structure is required to be packed because fixed field offsets
// into this structure are used in assembly code in this module
// Assembly routines should refrain from directly interacting with
// the internal details of CPU_MP_DATA.
//
typedef struct {
UINTN StackStart;
Expand Down Expand Up @@ -240,17 +242,16 @@ typedef struct {
#pragma pack()

//
// CPU MP Data save in memory
// CPU MP Data save in memory, and intended for use in C code.
// There are some duplicated fields, such as XD status, between
// CpuMpData and ExchangeInfo. These duplications in CpuMpData
// are present to avoid to be direct accessed and comprehended
// in assembly code.
//
struct _CPU_MP_DATA {
UINT64 CpuInfoInHob;
UINT32 CpuCount;
UINT32 BspNumber;
//
// The above fields data will be passed from PEI to DXE
// Please make sure the fields offset same in the different
// architecture.
//
SPIN_LOCK MpLock;
UINTN Buffer;
UINTN CpuApStackSize;
Expand Down

0 comments on commit 94c9ad0

Please sign in to comment.