forked from tianocore/edk2-platforms
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial U5SeriesPkg for U5 series platforms. Signed-off-by: Abner Chang <[email protected]> Reviewed-by:Gilbert Chen <[email protected]> Acked-by:Leif Lindholm <[email protected]> Cc: Michael D Kinney <[email protected]> Cc: Ard Biesheuvel <[email protected]> Cc: Leif Lindholm <[email protected]> Cc: Gilbert Chen <[email protected]> Cc: Palmer Dabbelt <[email protected]>
- Loading branch information
Abner Chang
committed
Aug 23, 2020
1 parent
3efcec3
commit f2ffd27
Showing
4 changed files
with
169 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# 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) | ||
|
||
## U500 Platform | ||
This is a sample RISC-V EDK2 platform package used agaist SiFive Freedom U500 | ||
VC707 FPGA Dev Kit, please refer to "SiFive Freedom U500 VC707 FPGA Getting | ||
Started Guide" on https://www.sifive.com/documentation. | ||
|
||
## 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 | ||
|
||
``` | ||
-cpu sifive-u54 -machine sifive_u | ||
``` | ||
|
||
## Download the sources | ||
``` | ||
git clone https://github.com/tianocore/edk2-staging.git | ||
# Checkout RISC-V-V2 branch | ||
git clone https://github.com/tianocore/edk2-platforms.git | ||
# Checkout devel-riscvplatforms branch | ||
git clone https://github.com/tianocore/edk2-non-osi.git | ||
``` | ||
|
||
## Platform Owners | ||
Chang, Abner <[email protected]> | ||
Chen, Gilbert <[email protected]> | ||
|
||
## Platform Status | ||
Currently the binary built from U500Pkg 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` | ||
|
||
## Supported Operating Systems | ||
Only support to boot to EFI Shell so far. | ||
|
||
## Known Issues and Limitations | ||
Only RISC-V RV64 is verified on this platform. | ||
|
||
## Related Materials | ||
- [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) | ||
- [SiFive RISC-V Core Document](https://www.sifive.com/documentation) | ||
|
||
## 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 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. | ||
|
||
### TimerDxe | ||
This is U5 series platform timer DXE driver whcih 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 | ||
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. | ||
|
||
### PlatformPei | ||
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 | ||
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. | ||
|
||
### PlatformPei | ||
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**| | ||
|----------------|----------| | ||
|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| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
## @file U5SeriesPkg.dec | ||
# This Package provides modules and libraries.for SiFive U5 series platforms. | ||
# | ||
# Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> | ||
# | ||
# SPDX-License-Identifier: BSD-2-Clause-Patent | ||
# | ||
## | ||
|
||
[Defines] | ||
DEC_SPECIFICATION = 0x0001001b | ||
PACKAGE_NAME = U5SeriesPkg | ||
PACKAGE_UNI_FILE = U5SeriesPkg.uni | ||
PACKAGE_GUID = AD6E43CA-7FED-4CEA-8151-68B2C5F12B3A | ||
PACKAGE_VERSION = 1.0 | ||
|
||
[Includes] | ||
Include | ||
|
||
[LibraryClasses] | ||
|
||
[Guids] | ||
gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid = {0x725B804B, 0x10B5, 0x4326, { 0xAD, 0xFF, 0x59, 0xCE, 0x6E, 0xFD, 0x5B, 0x36 }} | ||
|
||
[PcdsFixedAtBuild] | ||
gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdU5PlatformSystemClock|0x0|UINT32|0x00001000 | ||
gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdNumberofU5Cores|0x8|UINT32|0x00001001 | ||
gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdE5MCSupported|TRUE|BOOLEAN|0x00001002 | ||
gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdU5UartBase|0x0|UINT32|0x00001003 | ||
|
||
[PcdsPatchableInModule] | ||
|
||
[UserExtensions.TianoCore."ExtraFiles"] | ||
U5SeriesPkg.uni |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// /** @file | ||
// SiFive U5 Series Package Localized Strings and Content. | ||
// | ||
// Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> | ||
// | ||
// SPDX-License-Identifier: BSD-2-Clause-Patent | ||
// | ||
// **/ | ||
|
||
|
||
#string STR_PACKAGE_ABSTRACT #language en-US "Provides SiFIve RISC-V U5 series platform modules and libraries" | ||
|
||
#string STR_PACKAGE_DESCRIPTION #language en-US "This Package SiFIve RISC-V U5 series platform modules and libraries." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// /** @file | ||
// SiFive U5 Series Package Localized Strings and Content. | ||
// | ||
// Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> | ||
// | ||
// SPDX-License-Identifier: BSD-2-Clause-Patent | ||
// | ||
// **/ | ||
|
||
#string STR_PROPERTIES_PACKAGE_NAME | ||
#language en-US | ||
"SiFive U5 series platform package" |