Hi Ray,

Can you please help investigate/evaluate options to solve this problem?

Thanks,

Mike

> -----Original Message-----
> From: Kinney, Michael D <michael.d.kin...@intel.com>
> Sent: Tuesday, December 13, 2022 1:40 PM
> To: devel@edk2.groups.io; ppola...@redhat.com; Ni, Ray <ray...@intel.com>; 
> Zimmer, Vincent <vincent.zim...@intel.com>;
> Kinney, Michael D <michael.d.kin...@intel.com>
> Cc: Gao, Liming <gaolim...@byosoft.com.cn>; Liu, Zhiguang 
> <zhiguang....@intel.com>
> Subject: RE: [edk2-devel] PATCH v1 1/1 MdePkg: Remove Itanium leftover data 
> structure
> 
> Hi Pawel,
> 
> Let's add Ray and Vincent to this topic to help pick the best option.
> 
> If everything is rebuilt from sources, then just removing the union
> member will work.
> 
> The challenge is that the non-Itanium CPU archs that may depend on the
> current binary layout of these structures.  This could be a binary
> PEI CPU module, DXE CPU module, SMM CPU module, MM CPU modules,
> UEFI App/Shell App that use the PPI or HOB.
> 
> Even if we define a new HOB format, we have to decide when it is
> used to support compatibility.  Perhaps always keep the current
> logic if < 1024 CPUs.  If number of CPUs >= 1024, then produce
> the new format of CPU information and update all consumers to
> look for new format and use that with higher priority than the
> old format.
> 
> Another option is to keep the current format and allow multiple
> HOBs to be produced if the CPU information does not fit in the
> single HOB size limit of 64KB.  Then update all consumers to
> look for 1 or more HOBs to collect all the information.  This
> approach removes the CPU number limit as long as there is enough
> temp RAM for the multiple HOBs.
> 
> Best regards,
> 
> Mike
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Pawel 
> > Polawski
> > Sent: Monday, December 12, 2022 9:18 PM
> > To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kin...@intel.com>
> > Cc: Gao, Liming <gaolim...@byosoft.com.cn>; Liu, Zhiguang 
> > <zhiguang....@intel.com>
> > Subject: Re: [edk2-devel] PATCH v1 1/1 MdePkg: Remove Itanium leftover data 
> > structure
> >
> > Hi Mike
> >
> > If there is a chance you were able to check if I should introduce new
> > PPI with a new GUID for my pull request? Or we can push forward with
> > exiting version?
> >
> > In case of some changes needed - I could start implementing them right
> > away so we could try to process everything before Christmas break.
> >
> > Let me know what is your opinion.
> >
> > Best regards,
> > Pawel
> >
> > W dniu 1.12.2022 o 21:23, Paweł Poławski pisze:
> > > Hi Mike,
> > >
> > > Thank you for the fast response.
> > > I will be waiting for your guidance on this topic.
> > >
> > > Btw - I am too new in the EDK2 world to witness this Itanium
> > > deprecation back in 2019. How such process looks like?
> > > If it starts with update in documentation followed by the changes
> > > in the code? How long is the intermediate part where both - new and old
> > > functionality needs to be supported?
> > >
> > > Best regards,
> > > Pawel
> > >
> > >
> > > W dniu 1.12.2022 o 18:01, Michael D Kinney pisze:
> > >> Hi Pawel,
> > >>
> > >> Thank you for the patch.  I agree this fixes the size issue.
> > >>
> > >> However, this structure and the associated PPI are defined in the PI Spec
> > >> and other modules may depend on the structure layout and would have to be
> > >> rebuilt after this structure change.
> > >>
> > >> It would be better to have a backwards compatible change here and I do
> > >> not have a specific proposal yet that both reduces the size and
> > >> preserves backwards compatibility.
> > >>
> > >> There have been examples in the past where we have had to introduce
> > >> a new version of a PPI with a new GUID for this type of change.
> > >>
> > >> I will get back to you on this topic in a few days.
> > >>
> > >> Thanks,
> > >>
> > >> Mike
> > >>
> > >>> -----Original Message-----
> > >>> From: Paweł Poławski <ppola...@redhat.com>
> > >>> Sent: Thursday, December 1, 2022 7:36 AM
> > >>> To: devel@edk2.groups.io
> > >>> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> > >>> <gaolim...@byosoft.com.cn>; Liu, Zhiguang
> > >>> <zhiguang....@intel.com>
> > >>> Subject: [edk2-devel] PATCH v1 1/1 MdePkg: Remove Itanium leftover
> > >>> data structure
> > >>>
> > >>> Itanium support has been removed from EDK2 aroun 2019.
> > >>> ITANIUM_HANDOFF_STATUS data structure looks to be
> > >>> some leftover from that process.
> > >>>
> > >>> There is also positive sidefect of this data structure removal.
> > >>> Due to HOB allocation type used in PEI stage there is a limit
> > >>> how much data about virtual CPU can be hold. This limit result
> > >>> in only 1024 vCPU can be used by VM.
> > >>> With Itanium related data structure removed more allocated space
> > >>> can be used for vCPU data and with current allocation limit
> > >>> will change from 1024 to around 8k vCPUs.
> > >>>
> > >>> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> > >>> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> > >>> Cc: Zhiguang Liu <zhiguang....@intel.com>
> > >>>
> > >>> Signed-off-by: Paweł Poławski <ppola...@redhat.com>
> > >>> ---
> > >>>   MdePkg/Include/Ppi/SecPlatformInformation.h | 44 --------------------
> > >>>   1 file changed, 44 deletions(-)
> > >>>
> > >>> diff --git a/MdePkg/Include/Ppi/SecPlatformInformation.h
> > >>> b/MdePkg/Include/Ppi/SecPlatformInformation.h
> > >>> index 02b0711f189e..fbcd205acd96 100644
> > >>> --- a/MdePkg/Include/Ppi/SecPlatformInformation.h
> > >>> +++ b/MdePkg/Include/Ppi/SecPlatformInformation.h
> > >>> @@ -84,49 +84,6 @@ typedef union {
> > >>>
> > >>>   typedef EFI_HEALTH_FLAGS X64_HANDOFF_STATUS;
> > >>>   typedef EFI_HEALTH_FLAGS IA32_HANDOFF_STATUS;
> > >>> -///
> > >>> -/// The hand-off status structure for Itanium architecture.
> > >>> -///
> > >>> -typedef struct {
> > >>> -  ///
> > >>> -  /// SALE_ENTRY state : 3 = Recovery_Check
> > >>> -  /// and 0 = RESET or Normal_Boot phase.
> > >>> -  ///
> > >>> -  UINT8     BootPhase;
> > >>> -  ///
> > >>> -  /// Firmware status on entry to SALE.
> > >>> -  ///
> > >>> -  UINT8     FWStatus;
> > >>> -  UINT16    Reserved1;
> > >>> -  UINT32    Reserved2;
> > >>> -  ///
> > >>> -  /// Geographically significant unique processor ID assigned by PAL.
> > >>> -  ///
> > >>> -  UINT16    ProcId;
> > >>> -  UINT16    Reserved3;
> > >>> -  UINT8     IdMask;
> > >>> -  UINT8     EidMask;
> > >>> -  UINT16    Reserved4;
> > >>> -  ///
> > >>> -  /// Address to make PAL calls.
> > >>> -  ///
> > >>> -  UINT64    PalCallAddress;
> > >>> -  ///
> > >>> -  /// If the entry state is RECOVERY_CHECK, this contains the PAL_RESET
> > >>> -  /// return address, and if entry state is RESET, this contains
> > >>> -  /// address for PAL_authentication call.
> > >>> -  ///
> > >>> -  UINT64    PalSpecialAddress;
> > >>> -  ///
> > >>> -  /// GR35 from PALE_EXIT state.
> > >>> -  ///
> > >>> -  UINT64    SelfTestStatus;
> > >>> -  ///
> > >>> -  /// GR37 from PALE_EXIT state.
> > >>> -  ///
> > >>> -  UINT64    SelfTestControl;
> > >>> -  UINT64    MemoryBufferRequired;
> > >>> -} ITANIUM_HANDOFF_STATUS;
> > >>>
> > >>>   ///
> > >>>   /// EFI_SEC_PLATFORM_INFORMATION_RECORD.
> > >>> @@ -134,7 +91,6 @@ typedef struct {
> > >>>   typedef union {
> > >>>     IA32_HANDOFF_STATUS       IA32HealthFlags;
> > >>>     X64_HANDOFF_STATUS        x64HealthFlags;
> > >>> -  ITANIUM_HANDOFF_STATUS    ItaniumHealthFlags;
> > >>>   } EFI_SEC_PLATFORM_INFORMATION_RECORD;
> > >>>
> > >>>   /**
> > >>> --
> > >>> 2.38.1
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> >
> >
> >
> > 
> >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97660): https://edk2.groups.io/g/devel/message/97660
Mute This Topic: https://groups.io/mt/95384808/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to