瀏覽代碼

Platform/U5SeriesPkg: Revise Readme.md

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>
Reviewed-by: Daniel Schaefer <daniel.schaefer@hpe.com>

Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
Abner Chang 3 年之前
父節點
當前提交
e9b4841fd4
共有 1 個文件被更改,包括 70 次插入51 次删除
  1. 70 51
      Platform/SiFive/U5SeriesPkg/Readme.md

+ 70 - 51
Platform/SiFive/U5SeriesPkg/Readme.md

@@ -1,61 +1,69 @@
-# 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
 ## U500 Platform
-This is a sample RISC-V EDK2 platform package used agaist SiFive Freedom U500
+This is a sample platform package used against to SiFive Freedom U500
 VC707 FPGA Dev Kit, please refer to "SiFive Freedom U500 VC707 FPGA Getting
 VC707 FPGA Dev Kit, please refer to "SiFive Freedom U500 VC707 FPGA Getting
 Started Guide" on https://www.sifive.com/documentation.
 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
 ## U540 Platform
-This is a sample RISC-V EDK2 platform package used against SiFive Freedom U540
-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 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. 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 with this  firmware to EFI shell
+and Linux user space.
+```
+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
 git clone https://github.com/tianocore/edk2-platforms.git
-# Checkout devel-riscvplatforms branch
-git clone https://github.com/tianocore/edk2-non-osi.git
+# Below to clone opensbi submodule.
+git submodule update --init
 ```
 ```
-
-## 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
 ## 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.
 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
 ## 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
 ## Known Issues and Limitations
 Only RISC-V RV64 is verified on this platform.
 Only RISC-V RV64 is verified on this platform.
 
 
 ## Related Materials
 ## Related Materials
+- [RISC-V UEFI Documents](https://github.com/riscv/riscv-uefi-edk2-docs)
 - [RISC-V OpenSbi](https://github.com/riscv/opensbi)
 - [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 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)
 - [SiFive Freedom U540-C000 Manual](https://sifive.cdn.prismic.io/sifive%2F834354f0-08e6-423c-bf1f-0cb58ef14061_fu540-c000-v1.0.pdf)
@@ -63,30 +71,34 @@ Only RISC-V RV64 is verified on this platform.
 
 
 ## U5SeriesPkg Libraries and Drivers
 ## U5SeriesPkg Libraries and Drivers
 ### PeiCoreInfoHobLib
 ### 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 library leverage the silicon libraries provided in Silicon/SiFive.
+This is the library to create RISC-V core characteristics for building up RISC-V
+related SMBIOS records to support a single boot loader  or OS image on all RISC-V
+platforms by discovering RISC-V hart configurations dynamically. This library leverage
+the silicon libraries provided in Silicon/SiFive.
 
 
 ### RiscVPlatformTimerLib
 ### 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
 ### TimerDxe
-This is U5 series platform timer DXE driver whcih has the platform-specific
+This is common U5 series platform timer DXE driver which has the platform-specific
 timer implementation.
 timer implementation.
 
 
 ## U500 Platform Libraries and Drivers
 ## U500 Platform Libraries and Drivers
 ### RiscVOpensbiPlatformLib
 ### RiscVOpensbiPlatformLib
 In order to reduce the dependencies with RISC-V OpenSBI project
 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.
+(https://github.com/riscv/opensbi) and avoid duplicating code we use it, 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](Silicon/RISC-V/ProcessorPkg/Library/RiscVOpensbiLib/opensbi)
+and built based on edk2 build environment.
 
 
 ### PlatformPei
 ### 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
 ## U540 Platform Libraries and Drivers
 ### RiscVOpensbiPlatformLib
 ### RiscVOpensbiPlatformLib
@@ -94,17 +106,24 @@ In order to reduce the dependencies with RISC-V OpenSBI project
 (https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the
 (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
 implementation of RISC-V EDK2 platform is leveraging platform source code from
 OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned 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 edk2build environment.
 
 
 ### PlatformPei
 ### 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
 ## U5SeriesPkg Platform PCD settings
 
 
 | **PCD name** |**Usage**|
 | **PCD name** |**Usage**|
 |----------------|----------|
 |----------------|----------|
+|PcdU5PlatformSystemClock| U5 series platform system clock|
 |PcdNumberofU5Cores| Number of U5 core enabled on U5 series platform|
 |PcdNumberofU5Cores| Number of U5 core enabled on U5 series platform|
 |PcdE5MCSupported| Indicates whether the Monitor Core (E5) is supported on U5 series platform|
 |PcdE5MCSupported| Indicates whether the Monitor Core (E5) is supported on U5 series platform|
 |PcdU5UartBase|Platform serial port base address|
 |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>