> -----Original Message-----
> From: Leif Lindholm <l...@nuviainc.com>
> Sent: Monday, March 30, 2020 5:49 PM
> To: Pankaj Bansal (OSS) <pankaj.ban...@oss.nxp.com>
> Cc: Meenakshi Aggarwal <meenakshi.aggar...@nxp.com>; Michael D Kinney
> <michael.d.kin...@intel.com>; devel@edk2.groups.io; Varun Sethi
> <v.se...@nxp.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-
> mahm...@arm.com>; Jon Nettleton <j...@solid-run.com>
> Subject: Re: [PATCH v2 28/28] Platform/NXP/LS1043aRdbPkg: Add PEI Phase
> 
> On Fri, Mar 20, 2020 at 20:05:43 +0530, Pankaj Bansal wrote:
> > From: Pankaj Bansal <pankaj.ban...@nxp.com>
> >
> > Add PEI phase to LS1043aRdb. This is needed becuase we need to have
> > dynamic PCDs support to be able to reserve memory before reporting
> > memory to UEFI fimrware.
> >
> > Signed-off-by: Pankaj Bansal <pankaj.ban...@nxp.com>
> > ---
> >  Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc  |  9 ---
> >  Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf  | 18 +++--
> >  .../MemoryInitPeiLib/MemoryInitPeiLib.c       | 77 ++++++++++---------
> >  .../MemoryInitPeiLib/MemoryInitPeiLib.inf     |  3 +-
> >  Silicon/NXP/NxpQoriqLs.dsc.inc                | 59 ++++++++++----
> >  5 files changed, 99 insertions(+), 67 deletions(-)
> >
> > diff --git a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
> b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
> > index d486c9b36fab..d45fd67c03b5 100644
> > --- a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
> > +++ b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.dsc
> > @@ -30,15 +30,6 @@ [LibraryClasses.common]
> >    RealTimeClockLib|Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.inf
> >
> >  [PcdsFixedAtBuild.common]
> > -
> > -  #
> > -  # LS1043a board Specific PCDs
> > -  # XX (DRAM - Region 1 2GB)
> > -  # (NOR - IFC Region 1 512MB)
> > -  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
> > -  gArmTokenSpaceGuid.PcdSystemMemorySize|0x7BE00000
> > -
> gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x02000000
> > -
> >    #
> >    # RTC Pcds
> >    #
> > diff --git a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf
> b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf
> > index 99fbc87e1200..931d0bb14f9b 100644
> > --- a/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf
> > +++ b/Platform/NXP/LS1043aRdbPkg/LS1043aRdbPkg.fdf
> > @@ -24,10 +24,10 @@
> >
> >  [FD.LS1043ARDB_EFI]
> >  BaseAddress   = 0x82000000|gArmTokenSpaceGuid.PcdFdBaseAddress  #The
> base address of the FLASH Device.
> > -Size          = 0x000ED000|gArmTokenSpaceGuid.PcdFdSize         #The size 
> > in
> bytes of the FLASH Device
> > +Size          = 0x00140000|gArmTokenSpaceGuid.PcdFdSize         #The size 
> > in
> bytes of the FLASH Device
> >  ErasePolarity = 1
> > -BlockSize     = 0x1
> > -NumBlocks     = 0xED000
> > +BlockSize     = 0x40000
> > +NumBlocks     = 0x5
> >
> >
> #################################################################
> ###############
> >  #
> > @@ -44,7 +44,7 @@ [FD.LS1043ARDB_EFI]
> >  # RegionType <FV, DATA, or FILE>
> >  #
> >
> #################################################################
> ###############
> > -0x00000000|0x000ED000
> > +0x00000000|0x00140000
> >  gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
> >  FV = FVMAIN_COMPACT
> >
> > @@ -159,7 +159,15 @@ [FV.FVMAIN_COMPACT]
> >  READ_LOCK_CAP      = TRUE
> >  READ_LOCK_STATUS   = TRUE
> >
> > -  INF ArmPlatformPkg/PrePi/PeiUniCore.inf
> > +  INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
> > +  INF MdeModulePkg/Core/Pei/PeiMain.inf
> > +  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
> > +  INF
> MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
> > +  INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
> > +  INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
> > +  INF ArmPkg/Drivers/CpuPei/CpuPei.inf
> > +  INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
> > +  INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
> >
> >    FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
> >      SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF
> PROCESSING_REQUIRED = TRUE {
> > diff --git a/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.c
> b/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.c
> > index 54d026ef1270..7fdf9cb77a6e 100644
> > --- a/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.c
> > +++ b/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.c
> > @@ -46,30 +46,12 @@ InitMmu (
> >    }
> >  }
> >
> > -/*++
> > -
> > -Routine Description:
> > -
> > -
> > -
> > -Arguments:
> > -
> > -  FileHandle  - Handle of the file being invoked.
> > -  PeiServices - Describes the list of possible PEI Services.
> > -
> > -Returns:
> > -
> > -  Status -  EFI_SUCCESS if the boot mode could be set
> > -
> > ---*/
> 
> The above line caused me an unexpected level of excitement this
> morning, as my "put back the CRs SMTP strips out" script treated the
> --- as a diff separator.
> 
> Now, I *have* seen the use of /*++ --*/ elsewhere in the tree, but
> this syntax is *not* described in the coding style and should not be
> used. While this is a delete statement, there is an addition below
> using the same format. The doxygen tags to use are /** and **/.
> 
> Fortunately, I can't spot any of these in the rest of the set.
> 
> Please send an updated version of this patch - alone if it's the only
> patch that needs changes, or with a v4 if such is required.

I have not received any comments on other patches so far.
Does that mean all patches are OK (except above)?
If that is the case, then I can send only this patch after update.
If some rework is needed for other patches as well, I will send this patch 
along with other reworked patches in v3.

> 
> >  EFI_STATUS
> >  EFIAPI
> > -MemoryPeim (
> > -  IN EFI_PHYSICAL_ADDRESS               UefiMemoryBase,
> > -  IN UINT64                             UefiMemorySize
> > +MemoryInitPeiLibConstructor (
> > +  VOID
> >    )
> >  {
> > -  ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable;
> >    ARM_SMC_ARGS                 ArmSmcArgs;
> >    INT32                        Index;
> >    UINTN                        DramSize;
> > @@ -82,18 +64,6 @@ MemoryPeim (
> >    UINTN                        FdTop;
> >    BOOLEAN                      FoundSystemMem;
> >
> > -  // Get Virtual Memory Map from the Platform Library
> > -  ArmPlatformGetVirtualMemoryMap (&MemoryTable);
> > -
> > -  //
> > -  // Ensure MemoryTable[0].Length which is size of DRAM has been set
> > -  // by ArmPlatformGetVirtualMemoryMap ()
> > -  //
> > -  ASSERT (MemoryTable[0].Length != 0);
> > -
> > -  //
> > -  // Now, the permanent memory has been installed, we can call
> AllocatePages()
> > -  //
> >    ResourceAttributes = (
> >      EFI_RESOURCE_ATTRIBUTE_PRESENT |
> >      EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
> > @@ -133,8 +103,8 @@ MemoryPeim (
> >
> >    ASSERT (!DramSize);
> >
> > -  FdBase = (UINTN)FixedPcdGet64 (PcdFdBaseAddress);
> > -  FdTop = FdBase + (UINTN)FixedPcdGet32 (PcdFdSize);
> > +  FdBase = (UINTN)PcdGet64 (PcdFdBaseAddress);
> > +  FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize);
> >
> >    // Declare memory regios to system
> >    for (Index = MAX_DRAM_REGIONS - 1; Index >= 0; Index--) {
> > @@ -178,8 +148,8 @@ MemoryPeim (
> >          );
> >        };
> >        // Mark the memory covering the Firmware Device as boot services data
> > -      BuildMemoryAllocationHob (FixedPcdGet64 (PcdFdBaseAddress),
> > -                                FixedPcdGet32 (PcdFdSize),
> > +      BuildMemoryAllocationHob (PcdGet64 (PcdFdBaseAddress),
> > +                                PcdGet32 (PcdFdSize),
> >                                  EfiBootServicesData);
> >      } else {
> >        BuildResourceDescriptorHob (
> > @@ -199,16 +169,49 @@ MemoryPeim (
> >      Top = DramRegions[Index].BaseAddress + DramRegions[Index].Size;
> >
> >      if (FdBase >= BaseAddress && FdTop <= Top) {
> > -      Size -= (UINTN)FixedPcdGet32 (PcdFdSize);
> > +      Size -= (UINTN)PcdGet32 (PcdFdSize);
> >      }
> >
> >      if (Size >= FixedPcdGet32 (PcdSystemMemoryUefiRegionSize)) {
> >        FoundSystemMem = TRUE;
> > +      PcdSet64S (PcdSystemMemoryBase, BaseAddress);
> > +      PcdSet64S (PcdSystemMemorySize, Size);
> >      }
> >    }
> >
> >    ASSERT (FoundSystemMem);
> >
> > +  return EFI_SUCCESS;
> > +}
> > +
> > +/*++
> 
> Here is the incorrect addition.
> 
> (I'm not reviewing the set backwards, this was just the only patch
> that wouldn't apply cleanly after conversion.)
> 
> /
>     Leif
> 
> > +
> > +Routine Description:
> > +
> > +
> > +
> > +Arguments:
> > +
> > +  FileHandle  - Handle of the file being invoked.
> > +  PeiServices - Describes the list of possible PEI Services.
> > +
> > +Returns:
> > +
> > +  Status -  EFI_SUCCESS if the boot mode could be set
> > +
> > +--*/
> > +EFI_STATUS
> > +EFIAPI
> > +MemoryPeim (
> > +  IN EFI_PHYSICAL_ADDRESS               UefiMemoryBase,
> > +  IN UINT64                             UefiMemorySize
> > +  )
> > +{
> > +  ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable;
> > +
> > +  // Get Virtual Memory Map from the Platform Library
> > +  ArmPlatformGetVirtualMemoryMap (&MemoryTable);
> > +
> >    // Build Memory Allocation Hob
> >    InitMmu (MemoryTable);
> >
> > diff --git a/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> b/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> > index ad2371115b17..a33f8cd3f743 100644
> > --- a/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> > +++ b/Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> > @@ -13,7 +13,8 @@ [Defines]
> >    FILE_GUID                      = 55ddb6e0-70b5-11e0-b33e-0002a5d5c51b
> >    MODULE_TYPE                    = BASE
> >    VERSION_STRING                 = 1.0
> > -  LIBRARY_CLASS                  = MemoryInitPeiLib|SEC PEIM DXE_DRIVER
> > +  LIBRARY_CLASS                  = MemoryInitPeiLib|PEIM
> > +  CONSTRUCTOR                    = MemoryInitPeiLibConstructor
> >
> >  [Sources]
> >    MemoryInitPeiLib.c
> > diff --git a/Silicon/NXP/NxpQoriqLs.dsc.inc b/Silicon/NXP/NxpQoriqLs.dsc.inc
> > index b2b10ce28a93..a3f18abb37b1 100644
> > --- a/Silicon/NXP/NxpQoriqLs.dsc.inc
> > +++ b/Silicon/NXP/NxpQoriqLs.dsc.inc
> > @@ -93,6 +93,7 @@ [LibraryClasses.common]
> >
> CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
> >
> NonDiscoverableDeviceRegistrationLib|MdeModulePkg/Library/NonDiscoverabl
> eDeviceRegistrationLib/NonDiscoverableDeviceRegistrationLib.inf
> >
> ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRep
> ortStatusCodeLib.inf
> > +
> UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecomp
> ressLib.inf
> >
> >    I2cLib|Silicon/NXP/Library/I2cLib/I2cLib.inf
> >
> ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetS
> ystemLib.inf
> > @@ -106,20 +107,24 @@ [LibraryClasses.common]
> >
> >  [LibraryClasses.common.SEC]
> >    PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> > -
> UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecomp
> ressLib.inf
> > -
> ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/P
> rePiExtractGuidedSectionLib.inf
> > -
> LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/Lzma
> CustomDecompressLib.inf
> > -  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
> > -  HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
> > -
> PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiH
> obListPointerLib.inf
> > -
> MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiM
> emoryAllocationLib.inf
> > +
> DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymb
> olsBaseLib.inf
> > +  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
> > +  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
> > +
> PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServi
> cesTablePointerLib.inf
> > +
> MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllo
> cationLib.inf
> > +
> > +[LibraryClasses.common.PEI_CORE]
> > +  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
> > +  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
> > +  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
> > +
> MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllo
> cationLib.inf
> > +
> PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
> >
> PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib
> .inf
> > +
> ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtrac
> tGuidedSectionLib.inf
> > +
> ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiRepo
> rtStatusCodeLib.inf
> > +
> OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/
> OemHookStatusCodeLibNull.inf
> >
> > -  # 1/123 faster than Stm or Vstm version
> > -  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
> > -
> > -  # Uncomment to turn on GDB stub in SEC.
> > -
> #DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
> > +
> PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServi
> cesTablePointerLib.inf
> >
> >  [LibraryClasses.common.PEIM]
> >    PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
> > @@ -128,14 +133,16 @@ [LibraryClasses.common.PEIM]
> >
> PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServi
> cesTablePointerLib.inf
> >    HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
> >
> MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllo
> cationLib.inf
> > +
> PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib
> .inf
> > +
> ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtrac
> tGuidedSectionLib.inf
> >
> ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiRepo
> rtStatusCodeLib.inf
> > +
> OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/
> OemHookStatusCodeLibNull.inf
> >
> >  [LibraryClasses.common.DXE_CORE]
> >    HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
> >
> MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/D
> xeCoreMemoryAllocationLib.inf
> >
> DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
> >
> ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtra
> ctGuidedSectionLib.inf
> > -
> UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecomp
> ressLib.inf
> >    DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
> >
> PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerf
> ormanceLib.inf
> >
> > @@ -207,6 +214,9 @@ [PcdsDynamicDefault.common]
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
> >
> > +  gArmTokenSpaceGuid.PcdSystemMemoryBase|0
> > +  gArmTokenSpaceGuid.PcdSystemMemorySize|0
> > +
> >  [PcdsDynamicHii.common.DEFAULT]
> >
> gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalV
> ariableGuid|0x0|10
> >
> > @@ -227,6 +237,12 @@ [PcdsFixedAtBuild.common]
> >    gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
> >    gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
> >
> > +  ## Base of DRAM
> > +  ## since TFA puts Fd at 0x2000000 offset from DRAM base, we can use this
> space
> > +  ## for temporary ram
> > +  gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x80000000
> > +
> gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x02000000
> > +
> >  !if $(TARGET) == RELEASE
> >    gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x27
> >    gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x81000001
> > @@ -284,13 +300,26 @@ [PcdsFixedAtBuild.common]
> >
> #################################################################
> ###############
> >  [Components.common]
> >    #
> > -  # SEC
> > +  # PEI Phase modules
> >    #
> > -  ArmPlatformPkg/PrePi/PeiUniCore.inf
> > +  ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
> > +
> > +  MdeModulePkg/Core/Pei/PeiMain.inf
> >    MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
> >      <LibraryClasses>
> >        PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> >    }
> > +  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
> > +  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
> > +
> > +  ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
> > +  ArmPkg/Drivers/CpuPei/CpuPei.inf
> > +  ArmPlatformPkg/PlatformPei/PlatformPeim.inf
> > +
> > +  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
> > +    <LibraryClasses>
> > +
> NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecom
> pressLib.inf
> > +  }
> >
> >    #
> >    # DXE
> > --
> > 2.17.1
> >

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

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

Reply via email to