public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chang, Abner" <abner.chang@amd.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"sunilvl@ventanamicro.com" <sunilvl@ventanamicro.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Jiewen Yao <jiewen.yao@intel.com>,
	Jordan Justen <jordan.l.justen@intel.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Daniel Schaefer <git@danielschaefer.me>
Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V3 06/34] OvmfPkg/PlatformInitLib: Add support for RISC-V
Date: Thu, 13 Oct 2022 14:58:17 +0000	[thread overview]
Message-ID: <MN2PR12MB396614A0CE7552486D684C7AEA259@MN2PR12MB3966.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20221013095829.1454581-7-sunilvl@ventanamicro.com>

[AMD Official Use Only - General]

Hi Sunil,
This file is originally from RISC-V FdtPeim.c. Please just keep HPE copyright because the difference between this one and the original one is the header file reference for the build and the correction of DEBUG macro. Or you can separate this this commit into two commits, one is the original file another is the changes made by Ventana.

I have no problem with the code logic by the way. 
Thanks
Abner 

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sunil V L
> via groups.io
> Sent: Thursday, October 13, 2022 5:58 PM
> To: devel@edk2.groups.io
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>; Jiewen Yao
> <jiewen.yao@intel.com>; Jordan Justen <jordan.l.justen@intel.com>; Gerd
> Hoffmann <kraxel@redhat.com>; Daniel Schaefer <git@danielschaefer.me>
> Subject: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V3 06/34]
> OvmfPkg/PlatformInitLib: Add support for RISC-V
> 
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
> 
> 
> REF:
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugz
> illa.tianocore.org%2Fshow_bug.cgi%3Fid%3D4076&amp;data=05%7C01%7Ca
> bner.chang%40amd.com%7C03bbd4f7f5f748c8964a08daad01988b%7C3dd896
> 1fe4884e608e11a82d994e183d%7C0%7C0%7C638012519614946969%7CUnkn
> own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik
> 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=PXc%2FF92%2F
> N67WFosTnDPCf%2FMGmaGVSnjUw2MXdk4Uq%2F8%3D&amp;reserved=0
> 
> This is copied from
> edk2-platforms/Platform/RISC-V/PlatformPkg/Universal/FdtPeim
> but added as part of library instead of a separate module.
> 
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Daniel Schaefer <git@danielschaefer.me>
> Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
> ---
>  .../PlatformInitLib/PlatformInitLib.inf       |  9 ++-
>  OvmfPkg/Include/Library/PlatformInitLib.h     |  6 ++
>  .../PlatformInitLib/RiscV64/PlatformPeiLib.c  | 73 +++++++++++++++++++
>  3 files changed, 87 insertions(+), 1 deletion(-)  create mode 100644
> OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
> 
> diff --git a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
> b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
> index d4449e40af61..ef8675999583 100644
> --- a/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
> +++ b/OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
> @@ -19,7 +19,7 @@ [Defines]
>  #
>  # The following information is for reference only and not required by the
> build tools.
>  #
> -#  VALID_ARCHITECTURES           = IA32 X64 EBC
> +#  VALID_ARCHITECTURES           = IA32 X64 EBC RISCV64
>  #
> 
>  [Sources.IA32, Sources.X64]
> @@ -33,6 +33,9 @@ [Sources.IA32]
>  [Sources.X64]
>    Ia32_X64/IntelTdx.c
> 
> +[Sources.RISCV64]
> +  RiscV64/PlatformPeiLib.c
> +
>  [Packages]
>    EmbeddedPkg/EmbeddedPkg.dec
>    MdeModulePkg/MdeModulePkg.dec
> @@ -58,6 +61,10 @@ [LibraryClasses.IA32, LibraryClasses.X64]
> [LibraryClasses.X64]
>    TdxLib
> 
> +[LibraryClasses.RISCV64]
> +  RiscVSbiLib
> +  FdtLib
> +
>  [Pcd]
>    gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
> 
> diff --git a/OvmfPkg/Include/Library/PlatformInitLib.h
> b/OvmfPkg/Include/Library/PlatformInitLib.h
> index c5234bf26d45..1b8d1fad3b49 100644
> --- a/OvmfPkg/Include/Library/PlatformInitLib.h
> +++ b/OvmfPkg/Include/Library/PlatformInitLib.h
> @@ -285,4 +285,10 @@ PlatformInitEmuVariableNvStore (
>    IN VOID  *EmuVariableNvStore
>    );
> 
> +EFI_STATUS
> +EFIAPI
> +PlatformPeim (
> +  VOID
> +  );
> +
>  #endif // PLATFORM_INIT_LIB_H_
> diff --git a/OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
> b/OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
> new file mode 100644
> index 000000000000..c5db7777c849
> --- /dev/null
> +++ b/OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c
> @@ -0,0 +1,73 @@
> +/** @file
> +The library call to pass the device tree to DXE via HOB.
> +
> +Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All
> +rights reserved.<BR> Copyright (c) 2022, Ventana Micro Systems Inc. All
> +rights reserved.<BR>
> +
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +//
> +//// The package level header files this module uses //// #include
> +<PiPei.h>
> +
> +#include <Library/DebugLib.h>
> +#include <Library/HobLib.h>
> +#include <Library/MemoryAllocationLib.h> #include
> +<Library/BaseRiscVSbiLib.h>
> +
> +#include <libfdt.h>
> +
> +#include <Guid/FdtHob.h>
> +
> +/**
> +  @retval EFI_SUCCESS            The address of FDT is passed in HOB.
> +          EFI_UNSUPPORTED        Can't locate FDT.
> +**/
> +EFI_STATUS
> +EFIAPI
> +PlatformPeim (
> +  VOID
> +  )
> +{
> +  EFI_RISCV_FIRMWARE_CONTEXT  *FirmwareContext;
> +  VOID                        *FdtPointer;
> +  VOID                        *Base;
> +  VOID                        *NewBase;
> +  UINTN                       FdtSize;
> +  UINTN                       FdtPages;
> +  UINT64                      *FdtHobData;
> +
> +  FirmwareContext = NULL;
> +  GetFirmwareContextPointer (&FirmwareContext);
> +
> +  if (FirmwareContext == NULL) {
> +    DEBUG ((DEBUG_ERROR, "%a: Firmware Context is NULL\n",
> __FUNCTION__));
> +    return EFI_UNSUPPORTED;
> +  }
> +
> +  FdtPointer = (VOID *)FirmwareContext->FlattenedDeviceTree;
> +  if (FdtPointer == NULL) {
> +    DEBUG ((DEBUG_ERROR, "%a: Invalid FDT pointer\n", __FUNCTION__));
> +    return EFI_UNSUPPORTED;
> +  }
> +
> +  DEBUG ((DEBUG_INFO, "%a: Build FDT HOB - FDT at address: 0x%x \n",
> + __FUNCTION__, FdtPointer));  Base = FdtPointer;  ASSERT (Base !=
> + NULL);  ASSERT (fdt_check_header (Base) == 0);
> +
> +  FdtSize  = fdt_totalsize (Base);
> +  FdtPages = EFI_SIZE_TO_PAGES (FdtSize);  NewBase  = AllocatePages
> + (FdtPages);  ASSERT (NewBase != NULL);  fdt_open_into (Base, NewBase,
> + EFI_PAGES_TO_SIZE (FdtPages));
> +
> +  FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof *FdtHobData);
> ASSERT
> + (FdtHobData != NULL);  *FdtHobData = (UINTN)NewBase;
> +
> +  return EFI_SUCCESS;
> +}
> --
> 2.25.1
> 
> 
> 
> 
> 

  reply	other threads:[~2022-10-13 14:58 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-13  9:57 [edk2-staging/RiscV64QemuVirt PATCH V3 00/34] Add support for RISC-V virt machine Sunil V L
2022-10-13  9:57 ` [edk2-staging/RiscV64QemuVirt PATCH V3 01/34] MdePkg/Register: Add register definition header files for RISC-V Sunil V L
2022-10-13 12:59   ` [edk2-devel] " Chang, Abner
2022-10-13 16:30     ` Sunil V L
2022-10-13  9:57 ` [edk2-staging/RiscV64QemuVirt PATCH V3 02/34] MdePkg: Add RISCV_EFI_BOOT_PROTOCOL related definitions Sunil V L
2022-10-13 12:40   ` [edk2-devel] " Chang, Abner
2022-10-13 16:29     ` Sunil V L
2022-10-14  1:02       ` Chang, Abner
2022-10-14  1:02   ` Chang, Abner
2022-10-13  9:57 ` [edk2-staging/RiscV64QemuVirt PATCH V3 03/34] MdePkg/BaseLib: RISC-V: Add few more helper functions Sunil V L
2022-10-13 14:10   ` [edk2-devel] " Chang, Abner
2022-10-13 16:32     ` Sunil V L
2022-10-13  9:57 ` [edk2-staging/RiscV64QemuVirt PATCH V3 04/34] MdePkg: Add BaseRiscVSbiLib Library for RISC-V Sunil V L
2022-10-13 14:24   ` [edk2-devel] " Chang, Abner
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 05/34] OvmfPkg/PlatformInitLib: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 06/34] OvmfPkg/PlatformInitLib: Add support for RISC-V Sunil V L
2022-10-13 14:58   ` Chang, Abner [this message]
2022-10-13 16:34     ` [edk2-devel] " Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 07/34] OvmfPkg/ResetSystemLib: Refactor to allow other architectures Sunil V L
2022-10-14 13:59   ` [edk2-devel] " Chang, Abner
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 08/34] OvmfPkg/ResetSystemLib: Add support for RISC-V Sunil V L
2022-10-14 16:16   ` [edk2-devel] " Chang, Abner
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 09/34] OvmfPkg/Sec: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 10/34] OvmfPkg/Sec: Add RISC-V support Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 11/34] OvmfPkg/PlatformPei: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 12/34] OvmfPkg/PlatformPei: Add support for RISC-V Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 13/34] UefiCpuPkg/CpuTimerLib: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 14/34] UefiCpuPkg/CpuTimerLib: Add support for RISC-V Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 15/34] UefiCpuPkg/CpuExceptionHandlerLib: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 16/34] UefiCpuPkg/CpuExceptionHandlerLib: Add support for RISC-V Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 17/34] UefiCpuPkg/CpuDxe: Refactor to allow other architectures Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 18/34] UefiCpuPkg/CpuDxe: Add support for RISC-V Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 19/34] UefiCpuPkg/CpuDxe: Add RISC-V Boot protocol support Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 20/34] UefiCpuPkg: Add CpuTimerDxe module Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 21/34] ArmVirtPkg/PlatformHasAcpiDtDxe: Move to OvmfPkg Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 22/34] ArmVirtPkg: Fix up the location of PlatformHasAcpiDtDxe Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 23/34] ArmVirtPkg/PlatformBootManagerLib: Move to OvmfPkg Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 24/34] ArmVirtPkg: Fix up the paths to PlatformBootManagerLib Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 25/34] ArmPlatformPkg/NorFlashPlatformLib.h:Move to MdePkg Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 26/34] EmbeddedPkg/NvVarStoreFormattedLib: Migrate to MdeModulePkg Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 27/34] ArmVirtPkg: Update the references to NvVarStoreFormattedLib Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 28/34] OvmfPkg: Add NorFlashQemuLib library Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 29/34] OvmfPkg: Add Qemu NOR flash DXE driver Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 30/34] OvmfPkg/NorFlashDxe: Avoid switching to array mode during writes Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 31/34] OvmfPkg/NorFlashDxe: Avoid switching between modes in a tight loop Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 32/34] OvmfPkg: RiscVVirt: Add Qemu Virt platform support Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 33/34] Maintainers.txt: Add entry for OvmfPkg/RiscVVirt Sunil V L
2022-10-13  9:58 ` [edk2-staging/RiscV64QemuVirt PATCH V3 34/34] UefiCpuPkg/UefiCpuPkg.ci.yaml: Ignore RISC-V file Sunil V L

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MN2PR12MB396614A0CE7552486D684C7AEA259@MN2PR12MB3966.namprd12.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox