Hi Liming,

You're right, it doesn't make sense to define this PCD on other architectures and it is not necessary.
I wrote this patch before patch 1 (MdeModulePkg: Restrict libraries using SMM to x86).
With the other patch, this PCD is not used on other architectures, so *we can drop this patch*.

Thanks,
Daniel

From: Gao, Liming <liming.gao@intel.com>
Sent: Monday, March 2, 2020 14:19
To: Schaefer, Daniel (DualStudy) <daniel.schaefer@hpe.com>; devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>; Chen, Gilbert <gilbert.chen@hpe.com>; Leif Lindholm <leif@nuviainc.com>; Bi, Dandan <dandan.bi@intel.com>
Subject: RE: [PATCH v2 2/3] MdeModulePkg: Set PcdDxeIplSwitchToLongMode false on non-x86
 
Daniel:
  PcdDxeIplSwitchToLongMode is only used in IA32 arch. It is also specified in [FeaturePcd.IA32] section of DxeIpl.inf. So, I don't understand why defines this PCD in other ARCH in MdeModulePkg.dec.

Thanks
Liming
> -----Original Message-----
> From: Daniel Schaefer <daniel.schaefer@hpe.com>
> Sent: Monday, March 2, 2020 6:33 PM
> To: devel@edk2.groups.io
> Cc: Abner Chang <abner.chang@hpe.com>; Gilbert Chen <gilbert.chen@hpe.com>; Leif Lindholm <leif@nuviainc.com>; Bi, Dandan
> <dandan.bi@intel.com>; Gao, Liming <liming.gao@intel.com>
> Subject: [PATCH v2 2/3] MdeModulePkg: Set PcdDxeIplSwitchToLongMode false on non-x86
>
> Otherwise the PCD isn't defined on other architectures.
>
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2548
>
> Signed-off-by: Daniel Schaefer <daniel.schaefer@hpe.com>
> Cc: Abner Chang <abner.chang@hpe.com>
> Cc: Gilbert Chen <gilbert.chen@hpe.com>
> Cc: Leif Lindholm <leif@nuviainc.com>
> Cc: Dandan Bi <dandan.bi@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> ---
>  MdeModulePkg/MdeModulePkg.dec | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
> index 91a3c608231c..59645c860148 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -879,6 +879,9 @@ [PcdsFeatureFlag]
>  [PcdsFeatureFlag.IA32, PcdsFeatureFlag.ARM, PcdsFeatureFlag.AARCH64]
>
>    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDegradeResourceForOptionRom|FALSE|BOOLEAN|0x0001003a
>
>
>
> +[PcdsFeatureFlag.EBC, PcdsFeatureFlag.ARM, PcdsFeatureFlag.AARCH64]
>
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE|BOOLEAN|0x0001003b
>
> +
>
>  [PcdsFeatureFlag.IA32, PcdsFeatureFlag.X64]
>
>    ## Indicates if DxeIpl should switch to long mode to enter DXE phase.
>
>    #  It is assumed that 64-bit DxeCore is built in firmware if it is true; otherwise 32-bit DxeCore
>
> --
> 2.25.0