Hi Ard, Leif,

On Tue, Dec 4, 2018 at 5:31 PM Chandni Cherukuri
<chandni.cheruk...@arm.com> wrote:
>
> The hardware configuration in HW_CONFIG dts is not being
> passed onto the operating system but used and terminated
> at edk2 boot stage (BL33). So, as per the recommendations
> of the trusted-firmware design, the hardware description
> specified in NT_FW_CONFIG dts should be used instead of
> HW_CONFIG dts.

The corresponding change in upstream trusted firmware has been merged.
So can you please have a look at this patch and let us know if any
changes are needed. Until this patch gets merged, the upstream master
branch of trusted firmware and edk2-platforms support for SGI
platforms is out of sync with each other. We will take care next time
to avoid causing dependencies like these between these two repos.

Thanks,
Thomas.

>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Cc: Leif Lindholm <leif.lindh...@linaro.org>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Chandni Cherukuri <chandni.cheruk...@arm.com>
> ---
>  Platform/ARM/SgiPkg/SgiPlatform.dec                           |  2 +-
>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf       |  2 +-
>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf |  4 +--
>  Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h               |  6 ++---
>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c         | 10 +++----
>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c  | 28 
> ++++++++++----------
>  Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S      |  6 ++---
>  7 files changed, 29 insertions(+), 29 deletions(-)
>
> diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec 
> b/Platform/ARM/SgiPkg/SgiPlatform.dec
> index f6e0ba1..9166052 100644
> --- a/Platform/ARM/SgiPkg/SgiPlatform.dec
> +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec
> @@ -45,4 +45,4 @@
>    gArmSgiTokenSpaceGuid.PcdDramBlock2Size|0|UINT64|0x00000003
>
>  [Ppis]
> -  gHwConfigDtInfoPpiGuid     = { 0x6f606eb3, 0x9123, 0x4e15, { 0xa8, 0x9b, 
> 0x0f, 0xac, 0x66, 0xef, 0xd0, 0x17 } }
> +  gNtFwConfigDtInfoPpiGuid     = { 0x6f606eb3, 0x9123, 0x4e15, { 0xa8, 0x9b, 
> 0x0f, 0xac, 0x66, 0xef, 0xd0, 0x17 } }
> diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf 
> b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf
> index 93377fa..260be58 100644
> --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf
> +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf
> @@ -71,4 +71,4 @@
>
>  [Ppis]
>    gArmMpCoreInfoPpiGuid
> -  gHwConfigDtInfoPpiGuid
> +  gNtFwConfigDtInfoPpiGuid
> diff --git a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf 
> b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
> index a7c718b..a9173cc 100644
> --- a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
> +++ b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
> @@ -34,7 +34,7 @@
>    gArmSgiPlatformIdDescriptorGuid
>
>  [Ppis]
> -  gHwConfigDtInfoPpiGuid
> +  gNtFwConfigDtInfoPpiGuid
>
>  [Depex]
> -  gHwConfigDtInfoPpiGuid
> +  gNtFwConfigDtInfoPpiGuid
> diff --git a/Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h 
> b/Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
> index 934eef2..b830326 100644
> --- a/Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
> +++ b/Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
> @@ -15,9 +15,9 @@
>  #ifndef  SGI_PLATFORMID_PPI_
>  #define  SGI_PLATFORMID_PPI_
>
> -// HwConfig DT structure
> +// NT_FW_CONFIG DT structure
>  typedef struct {
> -  UINT64                  HwConfigDtAddr;
> -} SGI_HW_CONFIG_INFO_PPI;
> +  UINT64                  NtFwConfigDtAddr;
> +} SGI_NT_FW_CONFIG_INFO_PPI;
>
>  #endif
> diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c 
> b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
> index 13bb423..d264292 100644
> --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
> +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
> @@ -17,8 +17,8 @@
>  #include <Ppi/ArmMpCoreInfo.h>
>  #include <Ppi/SgiPlatformId.h>
>
> -UINT64 HwConfigDtBlob;
> -STATIC SGI_HW_CONFIG_INFO_PPI mHwConfigDtInfoPpi;
> +UINT64 NtFwConfigDtBlob;
> +STATIC SGI_NT_FW_CONFIG_INFO_PPI mNtFwConfigDtInfoPpi;
>
>  STATIC ARM_CORE_INFO mCoreInfoTable[] = {
>    {
> @@ -40,7 +40,7 @@ ArmPlatformInitialize (
>    IN  UINTN                     MpId
>    )
>  {
> -  mHwConfigDtInfoPpi.HwConfigDtAddr = HwConfigDtBlob;
> +  mNtFwConfigDtInfoPpi.NtFwConfigDtAddr = NtFwConfigDtBlob;
>    return RETURN_SUCCESS;
>  }
>
> @@ -67,8 +67,8 @@ EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = {
>    },
>    {
>      EFI_PEI_PPI_DESCRIPTOR_PPI,
> -    &gHwConfigDtInfoPpiGuid,
> -    &mHwConfigDtInfoPpi
> +    &gNtFwConfigDtInfoPpiGuid,
> +    &mNtFwConfigDtInfoPpi
>    }
>  };
>
> diff --git a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c 
> b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
> index 065b23d..d133921 100644
> --- a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
> +++ b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
> @@ -24,9 +24,9 @@
>
>    This function returns the System ID of the platform
>
> -  This functions locates the HwConfig PPI and gets the base address of HW 
> CONFIG
> -  DT from which the platform ID and config ID is obtained using FDT helper
> -  functions
> +  This functions locates the NtFwConfig PPI and gets the base address of
> +  NT_FW_CONFIG DT from which the platform ID and config ID is obtained
> +  using FDT helper functions
>
>    @param[out]      Pointer to the SGI_PLATFORM_DESCRIPTOR HoB
>    @return          returns EFI_SUCCESS on success and EFI_INVALID_PARAMETER 
> on error
> @@ -41,31 +41,31 @@ GetSgiSystemId (
>  {
>    CONST UINT32                  *Property;
>    INT32                         Offset;
> -  CONST VOID                    *HwCfgDtBlob;
> -  SGI_HW_CONFIG_INFO_PPI        *HwConfigInfoPpi;
> +  CONST VOID                    *NtFwCfgDtBlob;
> +  SGI_NT_FW_CONFIG_INFO_PPI     *NtFwConfigInfoPpi;
>    EFI_STATUS                    Status;
>
> -  Status = PeiServicesLocatePpi (&gHwConfigDtInfoPpiGuid, 0, NULL,
> -             (VOID**)&HwConfigInfoPpi);
> +  Status = PeiServicesLocatePpi (&gNtFwConfigDtInfoPpiGuid, 0, NULL,
> +             (VOID**)&NtFwConfigInfoPpi);
>    if (EFI_ERROR (Status)) {
>      DEBUG ((DEBUG_ERROR,
>        "PeiServicesLocatePpi failed with error %r\n", Status));
>      return EFI_INVALID_PARAMETER;
>    }
>
> -  HwCfgDtBlob = (VOID *)(UINTN)HwConfigInfoPpi->HwConfigDtAddr;
> -  if (fdt_check_header (HwCfgDtBlob) != 0) {
> -    DEBUG ((DEBUG_ERROR, "Invalid DTB file %p passed\n", HwCfgDtBlob));
> +  NtFwCfgDtBlob = (VOID *)(UINTN)NtFwConfigInfoPpi->NtFwConfigDtAddr;
> +  if (fdt_check_header (NtFwCfgDtBlob) != 0) {
> +    DEBUG ((DEBUG_ERROR, "Invalid DTB file %p passed\n", NtFwCfgDtBlob));
>      return EFI_INVALID_PARAMETER;
>    }
>
> -  Offset = fdt_subnode_offset (HwCfgDtBlob, 0, "system-id");
> +  Offset = fdt_subnode_offset (NtFwCfgDtBlob, 0, "system-id");
>    if (Offset == -FDT_ERR_NOTFOUND) {
>      DEBUG ((DEBUG_ERROR, "Invalid DTB : system-id node not found\n"));
>      return EFI_INVALID_PARAMETER;
>    }
>
> -  Property = fdt_getprop (HwCfgDtBlob, Offset, "platform-id", NULL);
> +  Property = fdt_getprop (NtFwCfgDtBlob, Offset, "platform-id", NULL);
>    if (Property == NULL) {
>      DEBUG ((DEBUG_ERROR, "platform-id property not found\n"));
>      return EFI_INVALID_PARAMETER;
> @@ -73,7 +73,7 @@ GetSgiSystemId (
>
>    HobData->PlatformId = fdt32_to_cpu (*Property);
>
> -  Property = fdt_getprop (HwCfgDtBlob, Offset, "config-id", NULL);
> +  Property = fdt_getprop (NtFwCfgDtBlob, Offset, "config-id", NULL);
>    if (Property == NULL) {
>      DEBUG ((DEBUG_ERROR, "config-id property not found\n"));
>      return EFI_INVALID_PARAMETER;
> @@ -108,7 +108,7 @@ SgiPlatformPeim (
>                                           &gArmSgiPlatformIdDescriptorGuid,
>                                           sizeof (SGI_PLATFORM_DESCRIPTOR));
>
> -  // Get the system id from the platform specific hw_config device tree
> +  // Get the system id from the platform specific nt_fw_config device tree
>    if (HobData == NULL) {
>      DEBUG ((DEBUG_ERROR, "Platform HOB is NULL\n"));
>      ASSERT (FALSE);
> diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S 
> b/Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S
> index 3662266..5dc6431 100644
> --- a/Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S
> +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S
> @@ -22,7 +22,7 @@ GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
>  GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
>  GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
>  GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
> -GCC_ASM_IMPORT(HwConfigDtBlob)
> +GCC_ASM_IMPORT(NtFwConfigDtBlob)
>
>  //
>  // First platform specific function to be called in the PEI phase
> @@ -34,8 +34,8 @@ GCC_ASM_IMPORT(HwConfigDtBlob)
>  //  VOID
>  //  );
>  ASM_PFX(ArmPlatformPeiBootAction):
> -  adr  x10, HwConfigDtBlob
> -  str  x1, [x10]
> +  adr  x10, NtFwConfigDtBlob
> +  str  x0, [x10]
>    ret
>
>  //UINTN
> --
> 2.7.4
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to