From: "Wu, Jiaxin" <jiaxin.wu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"kraxel@redhat.com" <kraxel@redhat.com>
Cc: "Dong, Eric" <eric.dong@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
"Zeng, Star" <star.zeng@intel.com>,
Laszlo Ersek <lersek@redhat.com>,
"Kumar, Rahul R" <rahul.r.kumar@intel.com>
Subject: Re: [edk2-devel] [PATCH v3 3/5] UefiCpuPkg/PiSmmCpuDxeSmm: Consume SMM Base Hob for SmBase info
Date: Sun, 29 Jan 2023 06:14:30 +0000 [thread overview]
Message-ID: <MN0PR11MB615813A40925AE7849E1EFD7FED29@MN0PR11MB6158.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20230118120218.7elnglgn3k7dd2bf@sirius.home.kraxel.org>
>
> > +UINT32 mBspApicId = 0;
>
> This should be moved to a separate patch with commit message explaining
> the reasons for the change. My guess would be this is required to allow
> processors running SmmInitHandler in parallel.
>
Yes, it's part of work to combine 2 SMIs (gcSmmInitTemplate & gcSmiHandlerTemplate) into one (gcSmiHandlerTemplate). And gcSmiHandlerTemplate will call the same SmmInitHandler for the first smi init. For smm CPU driver, we need keep it in the same patch, separate patch will make another patch not work, because we need replace the mIsBsp to IsBsp:
IsBsp = (BOOLEAN)(mBspApicId == ApicId);
While the mBspApicId is need added one.
> Why mIsBsp is removed but mRebased is not?
mRebased is critical semaphore for each cpu to finish its 1st SMI. Remove it will make the function not work.
>
> > - // Allocate buffer for all of the tiles.
> > + // Check whether the Required TileSize is enough.
> > //
> > - // Intel(R) 64 and IA-32 Architectures Software Developer's Manual
> > - // Volume 3C, Section 34.11 SMBASE Relocation
> > - // For Pentium and Intel486 processors, the SMBASE values must be
> > - // aligned on a 32-KByte boundary or the processor will enter shutdown
> > - // state during the execution of a RSM instruction.
> > + if (TileSize > SIZE_8KB) {
> > + DEBUG ((DEBUG_ERROR, "The Range of Smbase in SMRAM is not
> enough -- Required TileSize = 0x%08x, Actual TileSize = 0x%08x\n", TileSize,
> SIZE_8KB));
> > + CpuDeadLoop ();
> > + return RETURN_BUFFER_TOO_SMALL;
> > + }
>
> Where does the 8K come from?
>
> This change is not mentioned in the commit message and most likely
> should be a separate patch.
>
This is about the tile size assumption:
One processor SMM Base tile size of buffer required to hold in SMRAM:
1. CPU SMRAM Save State Map starts at SMBASE + SMRAM_SAVE_STATE_MAP_OFFSET(0xfc00),
2. extra CPU specific context start starts at SMBASE + SMM_PSD_OFFSET (PROCESSOR SMM DESCRIPTO, 0xfb00),
3. SMI entry point starts at SMBASE + SMM_HANDLER_OFFSET (0x8000).
This size is rounded up to nearest power of 2.
The pre-assigned smbase in hob is based on the biggest possibility of tile size. We think it's impossible that tile size bigger than 8k, that's the reason we add the check here. I agree to make this as separate patch.
> take care,
> Gerd
>
>
>
>
>
next prev parent reply other threads:[~2023-01-29 6:14 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 9:56 [PATCH v3 0/5] Simplify SMM Relocation Process Wu, Jiaxin
2023-01-18 9:56 ` [PATCH v3 1/5] UefiCpuPkg/SmmBaseHob.h: Add SMM Base HOB Data Wu, Jiaxin
2023-01-18 11:19 ` Gerd Hoffmann
2023-01-18 15:06 ` Ni, Ray
2023-01-19 7:13 ` Gerd Hoffmann
2023-01-29 5:08 ` Wu, Jiaxin
2023-02-01 13:02 ` Gerd Hoffmann
2023-01-20 8:21 ` Laszlo Ersek
2023-01-29 5:24 ` Wu, Jiaxin
2023-02-01 13:14 ` Gerd Hoffmann
2023-02-02 0:44 ` Wu, Jiaxin
2023-02-02 3:54 ` [edk2-devel] " Ni, Ray
2023-02-02 3:52 ` Ni, Ray
2023-02-02 12:51 ` Gerd Hoffmann
2023-02-02 22:29 ` [edk2-devel] " Brian J. Johnson
2023-02-03 3:14 ` Ni, Ray
2023-02-03 7:54 ` Gerd Hoffmann
2023-02-03 13:22 ` Wu, Jiaxin
2023-02-03 13:31 ` Ni, Ray
2023-02-03 15:00 ` Gerd Hoffmann
2023-01-18 9:56 ` [PATCH v3 2/5] UefiCpuPkg/PiSmmCpuDxeSmm: Fix invalid InitializeMpSyncData call Wu, Jiaxin
2023-01-18 9:56 ` [PATCH v3 3/5] UefiCpuPkg/PiSmmCpuDxeSmm: Consume SMM Base Hob for SmBase info Wu, Jiaxin
2023-01-18 12:02 ` Gerd Hoffmann
2023-01-29 6:14 ` Wu, Jiaxin [this message]
2023-01-18 9:56 ` [PATCH v3 4/5] UefiCpuPkg/SmmCpuFeaturesLib: Skip SMBASE configuration Wu, Jiaxin
2023-01-18 9:56 ` [PATCH v3 5/5] OvmfPkg/SmmCpuFeaturesLib: " Wu, Jiaxin
2023-01-18 12:19 ` Gerd Hoffmann
2023-01-18 14:37 ` Ni, Ray
2023-01-19 7:53 ` Gerd Hoffmann
2023-01-29 5:47 ` Wu, Jiaxin
2023-02-01 13:40 ` Gerd Hoffmann
2023-02-02 1:41 ` Wu, Jiaxin
2023-02-02 9:00 ` Gerd Hoffmann
2023-02-02 11:47 ` Laszlo Ersek
2023-02-02 12:24 ` Gerd Hoffmann
2023-02-03 3:05 ` Wu, Jiaxin
2023-02-03 2:47 ` Wu, Jiaxin
2023-02-03 3:45 ` Ni, Ray
2023-02-03 7:31 ` Gerd Hoffmann
2023-02-03 7:43 ` Ni, Ray
2023-02-03 8:49 ` Gerd Hoffmann
2023-02-03 11:18 ` Wu, Jiaxin
[not found] ` <173B5EAF72B992BD.14781@groups.io>
2023-02-03 8:59 ` [edk2-devel] " Wu, Jiaxin
2023-02-03 9:04 ` Gerd Hoffmann
2023-02-03 11:15 ` Wu, Jiaxin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MN0PR11MB615813A40925AE7849E1EFD7FED29@MN0PR11MB6158.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox