From: "Daniel Schaefer" <daniel.schaefer@hpe.com>
To: Abner Chang <abner.chang@hpe.com>, <devel@edk2.groups.io>
Cc: "leif@nuviainc.com" <leif@nuviainc.com>,
Michael D Kinney <michael.d.kinney@intel.com>
Subject: Re: [edk2-plaforms PATCH 3/3] Platform/U5SeriesPkg: Revise Readme.md
Date: Thu, 27 Aug 2020 15:43:53 +0200 [thread overview]
Message-ID: <ab912db1-268d-f44f-8661-c7ff56fdefb1@hpe.com> (raw)
In-Reply-To: <20200827120305.26095-4-abner.chang@hpe.com>
Oops, you didn't send this to Leif and Mike?
On 8/27/20 2:03 PM, Abner Chang wrote:
> Update RISC-V U5SeriesPkg Readme.md to align with the latest implementation.
>
> Signed-off-by: Abner Chang <abner.chang@hpe.com>
> Co-authored-by: Daniel Schaefer <daniel.schaefer@hpe.com>
>
> Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
> ---
> Platform/SiFive/U5SeriesPkg/Readme.md | 112 +++++++++++++-------------
> 1 file changed, 58 insertions(+), 54 deletions(-)
>
> diff --git a/Platform/SiFive/U5SeriesPkg/Readme.md b/Platform/SiFive/U5SeriesPkg/Readme.md
> index 4d293e54f6..4d404efec4 100644
> --- a/Platform/SiFive/U5SeriesPkg/Readme.md
> +++ b/Platform/SiFive/U5SeriesPkg/Readme.md
> @@ -1,61 +1,59 @@
> -# Introduction
> -U5SeriesPkg provides the common EFI library and driver modules for SiFive
> -U5 series core platforms. Currently the supported platforms are Freedom
> -U500 VC707 platform and Freedom U540 HiFive Unleashed platform.
> -
> -Both platforms are built with below common packages,
> -- **U5SeriesPkg**, edk2 platform branch
> - (Currently is in edk2-platforms/devel-riscvplatforms branch)
> -- **RiscVPlatformPkg**, edk2 master branch
> - (Currently is in edk2-staging/RISC-V-V2 branch)
> -- **RiscVPkg**, edk2 master branch
> - (Currently is in edk2-staging/RISC-V-V2 branch)
> +# Introduction of SiFive U5 Series Platforms
> +U5SeriesPkg provides the common EDK2 libraries and drivers for SiFive U5 series platforms. Currently the supported
> +platforms are Freedom U500 VC707 platform and Freedom U540 HiFive Unleashed platform.
> +
> +Both platforms are built with below common edk2 packages under edk2-platforms repository,
> +- [**U5SeriesPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Platform/SiFive/U5SeriesPkg)
> +- [**RiscVPlatformPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Platform/RISC-V/PlatformPkg)
> +- [**RiscVProcessorPkg**](https://github.com/tianocore/edk2-platforms/tree/master/Silicon/RISC-V/ProcessorPkg)
>
> ## U500 Platform
> -This is a sample RISC-V EDK2 platform package used agaist SiFive Freedom U500
I don't think we need to say "RISC-V EDK2" so often.
> +This is a sample RISC-V EDK2 platform package used against to SiFive Freedom U500
- RISC-V EDK2
> VC707 FPGA Dev Kit, please refer to "SiFive Freedom U500 VC707 FPGA Getting
> Started Guide" on https://www.sifive.com/documentation.
> +The binary built from Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board can run on U500 VC707 FPGA board.
> +```
> +build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc
> +```
>
> ## U540 Platform
> -This is a sample RISC-V EDK2 platform package used against SiFive Freedom U540
- RISC-V EDK2
> -HiFive Unleashed development board, please refer to "SiFive Freedom U540-C000
> -Manual" on https://www.sifive.com.
> -The binary built from Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/
> -can run on main stream [QEMU](https://git.qemu.org/?p=qemu.git;a=summary)
> -using qemu-system-riscv64 under riscv64-softmmu. Launch the binary with
> +This is a sample RISC-V EDK2 platform package used for the SiFive Freedom U540 HiFive Unleashed development board, please refer to "SiFive Freedom U540-C000 Manual" on https://www.sifive.com.
- RISC-V EDK2
> +The binary built from Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/ can run on both hardware and
> +[QEMU](https://git.qemu.org/?p=qemu.git;a=summary). It is confirmed that version 5.0 of QEMU can boot the firmware.
I think here we should also say: can boot with this firmware to EFI shell and Linux userspace.
> +```
> +build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.dsc
> +```
> +For running U540 edk2 binary on QEMU, use qemu-system-riscv64 under riscv64-softmmu to launch the binary with
> +below parameters,
>
> ```
> --cpu sifive-u54 -machine sifive_u
> +qemu-system-riscv64 -cpu sifive-u54 -machine sifive_u -bios U540.fd -m 2048 -nographic -smp cpus=5,maxcpus=5
> ```
>
> -## Download the sources
> +## Download the Source Code
> ```
> -git clone https://github.com/tianocore/edk2-staging.git
> -# Checkout RISC-V-V2 branch
> +git clone https://github.com/tianocore/edk2.git
> git clone https://github.com/tianocore/edk2-platforms.git
Please add --recurse-submodules here to also clone opensbi.
> -# Checkout devel-riscvplatforms branch
> -git clone https://github.com/tianocore/edk2-non-osi.git
> ```
> -
> -## Platform Owners
> -Chang, Abner <abner.chang@hpe.com>
> -Chen, Gilbert <gilbert.chen@hpe.com>
> +Refer to [Readme.md](https://github.com/tianocore/edk2-platforms/blob/master/Platform/RISC-V/PlatformPkg/Readme.md) for building RISC-V platforms.
>
> ## Platform Status
> -Currently the binary built from U500Pkg can boot SiFive Freedom U500 VC707
> +**FreedomU500VC707Board**
> +Currently the binary built from U500 edk2 package can boot SiFive Freedom U500 VC707
> FPGA to EFI shell with console in/out enabled.
>
> -## Linux Build Instructions
> -You can build the RISC-V platform using below script,
> -`build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc`
> +**FreedomU540HiFiveUnleashedBoard**
> +Currently the binary built from U540 edk2 package can boot SiFive Freedom U540 HiFive Unleashed
> +to EFI shell with console in/out enabled and Linux kernel. Please refer to https://github.com/riscv/riscv-uefi-edk2-docs for booting to Linux kernel.
>
> ## Supported Operating Systems
> -Only support to boot to EFI Shell so far.
> +Please refer to https://github.com/riscv/riscv-uefi-edk2-docs.
>
> ## Known Issues and Limitations
> Only RISC-V RV64 is verified on this platform.
>
> ## Related Materials
> +- [RISC-V UEFI Documents](https://github.com/riscv/riscv-uefi-edk2-docs)
> - [RISC-V OpenSbi](https://github.com/riscv/opensbi)
> - [SiFive U500 VC707 FPGA Getting Started Guide](https://sifive.cdn.prismic.io/sifive%2Fc248fabc-5e44-4412-b1c3-6bb6aac73a2c_sifive-u500-vc707-gettingstarted-v0.2.pdf)
> - [SiFive Freedom U540-C000 Manual](https://sifive.cdn.prismic.io/sifive%2F834354f0-08e6-423c-bf1f-0cb58ef14061_fu540-c000-v1.0.pdf)
> @@ -63,48 +61,54 @@ Only RISC-V RV64 is verified on this platform.
>
> ## U5SeriesPkg Libraries and Drivers
> ### PeiCoreInfoHobLib
> -This is the library to create RISC-V core characteristics for building up
> -RISC-V related SMBIOS records to support the unified boot loader and OS image.
> +This is the library to create RISC-V core characteristics for building up RISC-V related SMBIOS records to support
> +the single boot loader image or OS image on the RISC-V variants
Hey! That's not what we discussed ;) What about:
a single boot loader and OS image for all RISC-V platforms by discovering RISC-V hart configurations dynamically.
> This library leverage the silicon libraries provided in Silicon/SiFive.
>
> ### RiscVPlatformTimerLib
> -This is common U5 series platform timer library which has the
> -platform-specific timer implementation.
> +This is common U5 series platform timer library which has the platform-specific timer implementation.
> +
> +### SerialLib
> +This is common U5 series platform serial port library.
>
> ### TimerDxe
> -This is U5 series platform timer DXE driver whcih has the platform-specific
> -timer implementation.
> +This is common U5 series platform timer DXE driver which has the platform-specific timer implementation.
>
> ## U500 Platform Libraries and Drivers
> ### RiscVOpensbiPlatformLib
> -In order to reduce the dependencies with RISC-V OpenSBI project
> -(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the
> -implementation of RISC-V EDK2 platform is leveraging platform source code from
> +In order to reduce the dependencies with RISC-V OpenSBI project (https://github.com/riscv/opensbi) and fewer
> +burdens to EDK2 build process, the implementation of RISC-V EDK2 platform is leveraging platform source code from
> OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned from
> -RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 build
> -environment.
> +[RISC-V OpenSBI code tree](Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi) and built based on edk2
> +build environment.
>
> ### PlatformPei
> -This is the platform-implementation specific library which is executed in early
> -PEI phase for U500 platform initialization.
> +This is the platform-implementation specific library which is executed in early PEI phase for U500 platform
> +initialization.
>
> ## U540 Platform Libraries and Drivers
> ### RiscVOpensbiPlatformLib
> -In order to reduce the dependencies with RISC-V OpenSBI project
> -(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the
> -implementation of RISC-V EDK2 platform is leveraging platform source code from
> +In order to reduce the dependencies with RISC-V OpenSBI project (https://github.com/riscv/opensbi) and fewer
> +burdens to EDK2 build process,
Hm, we are depending on OpenSBI. You can say to avoid duplicating code we use it.
But we're switching to S-Mode very soon to avoid calling many internal OpenSBI functions
and instead calling the standardized SBI interface.
> the implementation of RISC-V EDK2 platform is leveraging platform source code from
> OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned from
> -RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 build
> -environment.
> +[RISC-V OpenSBI code tree](Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi) and built based on edk2
> +build environment.
>
> ### PlatformPei
> -This is the platform-implementation specific library which is executed in early
> -PEI phase for U540 platform initialization.
> +This is the platform-implementation specific library which is executed in early PEI phase for U540 platform
> +initialization.
>
> ## U5SeriesPkg Platform PCD settings
>
> | **PCD name** |**Usage**|
> |----------------|----------|
> +|PcdU5PlatformSystemClock| U5 series platform system clock|
> |PcdNumberofU5Cores| Number of U5 core enabled on U5 series platform|
> |PcdE5MCSupported| Indicates whether the Monitor Core (E5) is supported on U5 series platform|
> |PcdU5UartBase|Platform serial port base address|
> +
> +
> +## Platform Owners
> +Chang, Abner <abner.chang@hpe.com>
> +Chen, Gilbert <gilbert.chen@hpe.com>
> +Schaefer, Daniel <daniel.schaefer@hpe.com>
> \ No newline at end of file
>
next prev parent reply other threads:[~2020-08-27 13:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-27 12:03 [edk2-plaforms PATCH 0/3] Revise Readme for RISC-V updates Abner Chang
2020-08-27 12:03 ` [edk2-plaforms PATCH 1/3] edk2-platforms: Revise Readme.md Abner Chang
2020-08-27 13:01 ` Leif Lindholm
2020-08-27 13:14 ` Abner Chang
2020-08-27 12:03 ` [edk2-plaforms PATCH 2/3] RISC-V/PlatformPkg: " Abner Chang
2020-08-27 13:23 ` [edk2-devel] " Leif Lindholm
2020-08-27 16:33 ` Abner Chang
2020-08-27 12:03 ` [edk2-plaforms PATCH 3/3] Platform/U5SeriesPkg: " Abner Chang
2020-08-27 13:24 ` [edk2-devel] " Leif Lindholm
2020-08-27 13:43 ` Daniel Schaefer [this message]
2020-08-27 14:06 ` Abner Chang
2020-08-27 14:54 ` Daniel Schaefer
2020-08-27 16:37 ` Abner Chang
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=ab912db1-268d-f44f-8661-c7ff56fdefb1@hpe.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