Thank Abner.
For RiscVPkg, my personally feeling is that it should stick to RiscV 
architecture, like ArmPkg.

Below module seems to be software concept only. They are independent to RISV-V 
architecture, right?
I am not sure if it is proper to put to RiscVPkg.

>  RiscVPkg/Universal/Logo/Logo.uni                   | Bin 0 -> 1948 bytes
>  RiscVPkg/Universal/Logo/LogoExtra.uni              | Bin 0 -> 1342 bytes
>  RiscVPkg/Universal/Logo/RiscvUefiLogo.bmp          | Bin 0 -> 12446 bytes
>  RiscVPkg/Universal/Logo/RiscvUefiLogo.inf          |  34 +
>  RiscVPkg/Universal/RiscvBadgingDxe/RiscvBadging.c  | 107 +++
>  RiscVPkg/Universal/RiscvBadgingDxe/RiscvBadging.h  |  32 +
>  .../Universal/RiscvBadgingDxe/RiscvBadgingDxe.inf  |  54 ++

Maybe we can put to a RiscV platform pkg?

Thank you
Yao Jiewen

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of
> Chang, Abner (HPS SW/FW Technologist)
> Sent: Monday, May 9, 2016 10:10 PM
> To: Justen, Jordan L <[email protected]>; [email protected]
> Cc: Yao, Jiewen <[email protected]>; Gao, Liming
> <[email protected]>
> Subject: Re: [edk2] [PATCH] MdeModulePkg/DxeIplPeim: RISC-V arch DxeIpl.
> 
> Hi Jordan,
> I will send out another draft version of patches which address all comments.
> Then upstream RISC-V code to the branch.
> Sure, I am pleased to check if there is any reusable modules for RISC-V.
> Thanks
> Abner
> 
> -----Original Message-----
> From: Jordan Justen [mailto:[email protected]]
> Sent: Monday, May 09, 2016 2:25 PM
> To: Chang, Abner (HPS SW/FW Technologist) <[email protected]>;
> [email protected]
> Cc: [email protected]; Yao, Jiewen <[email protected]>
> Subject: Re: [edk2] [PATCH] MdeModulePkg/DxeIplPeim: RISC-V arch DxeIpl.
> 
> On 2016-05-08 04:19:08, Chang, Abner (HPS SW/FW Technologist) wrote:
> > Hi Jordan,
> > The UEFI/PI ECR for RISC-V is ready but not yet send to UEFI for
> > review. I have been told to upstream RISC-V code first and then submit
> > the spec. I will confirm this again.
> 
> You were told to upstream EDK II support before the UEFI spec documented
> the architecture? Or, maybe to just prepare the EDK II code so it would be
> ready for upstream once it is in the spec?
> 
> Maybe EDK II could adopt a new idea of an "unsupported architecture", but
> it seems like EDK II might make some mistakes if it doesn't wait for UEFI to
> standardize the architecture. For example, what if the calling convention
> changes before it makes it into the spec?
> 
> I think Jiewen's idea of edk2-staging is good. But, before that, it seems you
> should make another draft version of the patches in fork of EDK II on github.
> 
> In a few cases, I asked if the modules could be added to more generic
> locations. How about trying to look over everything in a RiscV*Pkg, and ask
> if it could instead live in Mde*Pkg, UefiCpuPkg or OvmfPkg?
> (And, hopefully by maximally reusing existing modules with architecture
> specific sources as needed...)
> 
> For example, we don't have a X64*Pkg...
> 
> -Jordan
> 
> > Below response to your comments,
> > > ---
> > >  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf            |  6 +-
> > >  MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c | 79
> > > ++++++++++++++++++++++
> > >>>Is it Riscv64 or RiscV64?
> > >>>Like MdePkg, I think MdeModulePkg only upports achitectures in the
> UEFI spec.
> >
> > This is typo, should be RiscV64. RISC-V arch UEFI spec is ready for review.
> >
> > >
> > > ---
> > >  RiscVPkg/Include/RiscV.h                           | 105 +++
> > >  .../PeiServicesTablePointer.c                      | 121 +++
> > >  .../PeiServicesTablePointerLib.inf                 |  46 ++
> > >  .../PeiServicesTablePointerLib.uni                 | Bin 0 -> 2520
> bytes
> > >
> > >>> utf-8. (See other my other email.)
> > >>>
> > >>>I think this library should live in MdePkg, except MdePkg only
> > >>>supports architectures that are in the UEFI spec.
> > PeiServerTablePointer lib is very processor depends. PI spec changes for
> this is ready for review as well.
> >
> > >>> RiscVPkg,
> > >>>This package seems to be mash up of things that possibly should be
> > >>>in MdePkg, UefiCpuPkg, a chipset package, and possibly platform
> packages.
> > >>>
> > Modules and libraries under RiscVPkg are all processor specific. Like Timer
> is provided by RISC-V processor itself instead of using something else on
> platform. ResetVector, Sec, exception and etc. are all the same.
> > UefiCpuPkg seems to me still not clean enough for common CPU usage.
> Like sec and ResetVector, we still have to use the modules from other
> processor package. So put RISC-V modules under its own package is mush
> clean in my opinion for now.
> >
> > >>>What is the status of the QEMU port?
> > >>>I don't think we should put this upstream into EDK II until QEMU
> > >>>has it upstream. Maybe https://github.com/tianocore/edk2-platforms
> > >>>in a ovmf-riscv branch?
> > There is no official QEMU supports RISC-V yet. The QEMU which supports
> RISC-V QEMU is on RISC-V Github. However, I have another RISC-V QEMU
> port for PC/AT which uses PCI as the platform bus spec because RISC-V
> platform spec is not yet ready.
> > The RISC-V QEMU PC/AT port is on my github. The detail is mentioned in
> > the readme file in RiscVVirtPkg. You also can refer to this link
> > https://github.com/AbnerChang/RiscVQemuPcat
> >
> > >>>What would prevent this from living under OvmfPkg? Say
> > >>>OvmfPkg/OvmfPkgRiscV64.dsc?
> > I think it should be no problem to use OvmfPkg as common
> processor/platform emulator. Just you still can see few Intel things. ARM
> QEMU implementation must be considered as well if we move RISC-V to
> OvmfPkg, thus we can have the consistent implementation.
> > RISC-V QEMU implementation just follows ARM QEMU implement, that is
> to have a separate package. But I agree with you that all
> processors/platforms emulator should be under OvmfPkg.
> >
> > >>>This should be utf-8:
> > >>>BaseTools/Scripts/ConvertUni.py
> > I will fix this.
> >
> > I think I set the configurations when submit patches. Will figure it out.
> > Thanks
> > Abner
> >
> > -----Original Message-----
> > From: Jordan Justen [mailto:[email protected]]
> > Sent: Sunday, May 08, 2016 1:53 PM
> > To: Chang, Abner (HPS SW/FW Technologist) <[email protected]>;
> > [email protected]
> > Cc: [email protected]
> > Subject: Re: [edk2] [PATCH] MdeModulePkg/DxeIplPeim: RISC-V arch
> DxeIpl.
> >
> > On 2016-05-07 21:23:36, Abner Chang wrote:
> > > From: AbnerChang <[email protected]>
> > >
> >
> > git config settings. :)
> >
> > > The implementation of RISC-V DxeIpl.
> > >
> > > Contributed-under: TianoCore Contribution Agreement 1.0
> > > Signed-off-by: Abner Chang<[email protected]>
> >
> > space before <
> >
> > > ---
> > >  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf            |  6 +-
> > >  MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c | 79
> > > ++++++++++++++++++++++
> >
> > Is it Riscv64 or RiscV64?
> >
> > Like MdePkg, I think MdeModulePkg only supports achitectures in the UEFI
> spec.
> >
> > -Jordan
> >
> > >  2 files changed, 84 insertions(+), 1 deletion(-)  create mode
> > > 100644 MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c
> > >
> > > diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
> > > b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
> > > index 04ad928..13c0852 100644
> > > --- a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
> > > +++ b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
> > > @@ -6,6 +6,7 @@
> > >  #  needed to run the DXE Foundation.
> > >  #
> > >  #  Copyright (c) 2006 - 2015, Intel Corporation. All rights
> > > reserved.<BR>
> > > +#  Copyright (c) 2016, Hewlett Packard Enterprise Development LP.
> > > +All rights reserved.<BR>
> > >  #  This program and the accompanying materials  #  are licensed
> and
> > > made available under the terms and conditions of the BSD License  #
> > > which accompanies this distribution.  The full text of the license
> > > may be found at @@ -29,7 +30,7 @@  #  # The following information
> is
> > > for reference only and not required by the build tools.
> > >  #
> > > -#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for
> build only) AARCH64
> > > +#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for
> build only) AARCH64 RISCV64
> > >  #
> > >
> > >  [Sources]
> > > @@ -57,6 +58,9 @@
> > >  [Sources.ARM, Sources.AARCH64]
> > >    Arm/DxeLoadFunc.c
> > >
> > > +[Sources.RISCV64]
> > > +  Riscv64/DxeLoadFunc.c
> > > +
> > >  [Packages]
> > >    MdePkg/MdePkg.dec
> > >    MdeModulePkg/MdeModulePkg.dec
> > > diff --git a/MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c
> > > b/MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c
> > > new file mode 100644
> > > index 0000000..6b42e44
> > > --- /dev/null
> > > +++ b/MdeModulePkg/Core/DxeIplPeim/Riscv64/DxeLoadFunc.c
> > > @@ -0,0 +1,79 @@
> > > +/** @file
> > > +  RISC-V specific functionality for DxeLoad.
> > > +
> > > +  Copyright (c) 2016, Hewlett Packard Enterprise Development LP.
> > > + All rights reserved.<BR>
> > > +
> > > +  This program and the accompanying materials  are licensed and
> > > + made available under the terms and conditions of the BSD License
> > > + which accompanies this distribution. The full text of the license
> > > + may be found at  http://opensource.org/licenses/bsd-license.php
> > > +
> > > +  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS
> IS"
> > > +BASIS,
> > > +  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > > +**/
> > > +
> > > +#include "DxeIpl.h"
> > > +
> > > +typedef
> > > +VOID*
> > > +(EFIAPI *DXEENTRYPOINT) (
> > > +  IN  VOID *HobStart
> > > +  );
> > > +
> > > +/**
> > > +   Transfers control to DxeCore.
> > > +
> > > +   This function performs a CPU architecture specific operations to
> execute
> > > +   the entry point of DxeCore with the parameters of HobList.
> > > +   It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase.
> > > +
> > > +   @param DxeCoreEntryPoint         The entry point of DxeCore.
> > > +   @param HobList                   The start of HobList passed
> to DxeCore.
> > > +
> > > +**/
> > > +VOID
> > > +HandOffToDxeCore (
> > > +  IN EFI_PHYSICAL_ADDRESS   DxeCoreEntryPoint,
> > > +  IN EFI_PEI_HOB_POINTERS   HobList
> > > +  )
> > > +{
> > > +  VOID                            *BaseOfStack;
> > > +  VOID                            *TopOfStack;
> > > +  EFI_STATUS                      Status;
> > > +  //
> > > +  //
> > > +  // Allocate 128KB for the Stack
> > > +  //
> > > +  BaseOfStack = AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE));
> > > +  ASSERT (BaseOfStack != NULL);
> > > +
> > > +  //
> > > +  // Compute the top of the stack we were allocated. Pre-allocate a
> > > + UINTN  // for safety.
> > > +  //
> > > +  TopOfStack = (VOID *) ((UINTN) BaseOfStack + EFI_SIZE_TO_PAGES
> > > + (STACK_SIZE) * EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT);
> TopOfStack =
> > > + ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);
> > > +
> > > +  //
> > > +  // End of PEI phase signal
> > > +  //
> > > +  Status = PeiServicesInstallPpi (&gEndOfPeiSignalPpi);
> > > + ASSERT_EFI_ERROR (Status);
> > > +
> > > +  //
> > > +  // Update the contents of BSP stack HOB to reflect the real stack info
> passed to DxeCore.
> > > +  //
> > > +  UpdateStackHob ((EFI_PHYSICAL_ADDRESS)(UINTN) BaseOfStack,
> > > + STACK_SIZE);
> > > +
> > > +  DEBUG ((EFI_D_INFO, "DXE Core new stack at %x, stack pointer at
> > > + %x\n", BaseOfStack, TopOfStack));
> > > +
> > > +  //
> > > +  // Transfer the control to the entry point of DxeCore.
> > > +  //
> > > +  SwitchStack (
> > > +    (SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint,
> > > +    HobList.Raw,
> > > +    NULL,
> > > +    TopOfStack
> > > +    );
> > > +}
> > > --
> > > 1.9.5.msysgit.0
> > >
> > > _______________________________________________
> > > edk2-devel mailing list
> > > [email protected]
> > > https://lists.01.org/mailman/listinfo/edk2-devel
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to