Leo and all,
I replied in https://bugzilla.tianocore.org/show_bug.cgi?id=2556 for a more 
general question about how uCode is used in AMD processors.

Because this package recently exposed a new interface ShadowMicrocodePpi, I try 
to involve Leo in the review from AMD uCode's needs.

Thanks,
Ray

> -----Original Message-----
> From: Duran, Leo <leo.du...@amd.com>
> Sent: Thursday, February 27, 2020 1:52 AM
> To: Laszlo Ersek <ler...@redhat.com>; Ni, Ray <ray...@intel.com>; 
> devel@edk2.groups.io; Wu, Hao A
> <hao.a...@intel.com>; Fu, Siyuan <siyuan...@intel.com>
> Cc: Dong, Eric <eric.d...@intel.com>
> Subject: RE: [edk2-devel] [PATCH 0/2] UefiCpuPkg/Library: Fix bug in MpInitLib
> 
> 
> 
> > -----Original Message-----
> > From: Laszlo Ersek [mailto:ler...@redhat.com]
> > Sent: Wednesday, February 26, 2020 12:45 PM
> > To: Duran, Leo <leo.du...@amd.com>; Ni, Ray <ray...@intel.com>;
> > devel@edk2.groups.io; Wu, Hao A <hao.a...@intel.com>; Fu, Siyuan
> > <siyuan...@intel.com>
> > Cc: Dong, Eric <eric.d...@intel.com>
> > Subject: Re: [edk2-devel] [PATCH 0/2] UefiCpuPkg/Library: Fix bug in
> > MpInitLib
> >
> > On 02/26/20 17:39, Duran, Leo wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: Laszlo Ersek [mailto:ler...@redhat.com]
> > >> Sent: Wednesday, February 26, 2020 11:21 AM
> > >> To: Duran, Leo <leo.du...@amd.com>; Ni, Ray <ray...@intel.com>;
> > >> devel@edk2.groups.io; Wu, Hao A <hao.a...@intel.com>; Fu, Siyuan
> > >> <siyuan...@intel.com>
> > >> Cc: Dong, Eric <eric.d...@intel.com>
> > >> Subject: Re: [edk2-devel] [PATCH 0/2] UefiCpuPkg/Library: Fix bug in
> > >> MpInitLib
> > >>
> > >> On 02/26/20 16:46, Duran, Leo wrote:
> > >>> BTW,
> > >>>
> > >>> I also considered adding a flag to CPU_MP_DATA to make the usage of
> > >> PlatformId a bit more explicit.
> > >>> E.g., something like CpuMpData-
> > >>> CpuData[ProcessorNumber].IsValidPlatformId... So the init code would
> > >>> look
> > >> like this:
> > >>>
> > >>>   //
> > >>>   // NOTE: PlatformId is not relevant on AMD platforms.
> > >>>   //
> > >>>   if (StandardSignatureIsAuthenticAMD ()) {
> > >>>     CpuMpData->CpuData[ProcessorNumber].IsValidPlatformId = FALSE;
> > >>>   else {
> > >>>     PlatformIdMsr.Uint64 = AsmReadMsr64 (MSR_IA32_PLATFORM_ID);
> > >>>     CpuMpData->CpuData[ProcessorNumber].PlatformId =
> > >> (UINT8)PlatformIdMsr.Bits.PlatformId;
> > >>>     CpuMpData->CpuData[ProcessorNumber].IsValidPlatformId = TRUE;
> > >>>   }
> > >>>
> > >>> This way "IsValidPlatformId" could be checked prior to using 
> > >>> "PlatformId".
> > >>> Anyway, that seemed a bit overkill, so I opted against it... thoughts?
> > >>
> > >> I think a global flag is justified; in the above approach, 
> > >> "IsValidPlatformId"
> > >> would not vary across "ProcessorNumber", so it does look like useless
> > >> generality.
> > > [Duran, Leo]
> > > Great point, Laszlo.
> > > Indeed, global makes senses in the case!
> > > I can prepare a v2-set to incorporate that.
> >
> > No, sorry, that wasn't what I meant. I didn't try to suggest a global 
> > variable.
> > Instead, I meant that a "global check" (conceptually, i.e.
> > regardless of particular processor number) made sense.
> >
> > I'm also not particularly *against* a global variable. In other words, I 
> > didn't try
> > to comment on using a global variable *at all*.
> >
> > Using a global variable might as well work, I just feel that your current 
> > patches
> > are good enough.
> [Duran, Leo]
> Great... I hear you.
> Then, I'd prefer not refactoring further at this point.... I hope Ray & Eric 
> agree.
> 
> Thanks for your feedback!
> Leo.
> 
> >
> > Thanks
> > Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#54977): https://edk2.groups.io/g/devel/message/54977
Mute This Topic: https://groups.io/mt/71541516/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to