From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web11.2350.1572238387408159951 for ; Sun, 27 Oct 2019 21:53:07 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=02044412f4=abner.chang@hpe.com) Received: from pps.filterd (m0150242.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9S4pbI9023652; Mon, 28 Oct 2019 04:53:07 GMT Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0a-002e3701.pphosted.com with ESMTP id 2vw02t5a1r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 28 Oct 2019 04:53:07 +0000 Received: from g9t2301.houston.hpecorp.net (g9t2301.houston.hpecorp.net [16.220.97.129]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id 4A0255B; Mon, 28 Oct 2019 04:53:06 +0000 (UTC) Received: from UB16Abner.asiapacific.hpqcorp.net (ub16abner.asiapacific.hpqcorp.net [15.119.209.229]) by g9t2301.houston.hpecorp.net (Postfix) with ESMTP id 3FF5D4E; Mon, 28 Oct 2019 04:53:04 +0000 (UTC) From: "Abner Chang" To: devel@edk2.groups.io Cc: abner.chang@hpe.com, Michael D Kinney , Ard Biesheuvel , Leif Lindholm , Gilbert Chen , Palmer Dabbelt Subject: [platform/devel-riscv-v2 PATCHv5 16/18] SiFive/U5SeriesPkg Add U5SeriesPkg. Date: Mon, 28 Oct 2019 12:20:31 +0800 Message-Id: <1572236433-15404-17-git-send-email-abner.chang@hpe.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1572236433-15404-1-git-send-email-abner.chang@hpe.com> References: <1572236433-15404-1-git-send-email-abner.chang@hpe.com> X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-28_01:2019-10-25,2019-10-28 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=1 mlxlogscore=999 spamscore=0 clxscore=1015 priorityscore=1501 mlxscore=0 malwarescore=0 bulkscore=0 phishscore=0 adultscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1910280047 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-002e3701.pphosted.com id x9S4pbI9023652 Content-Type: text/plain; charset=y Content-Transfer-Encoding: quoted-printable Initial U5SeriesPkg for U5 series platforms. Signed-off-by: Abner Chang Cc: Michael D Kinney Cc: Ard Biesheuvel Cc: Leif Lindholm Cc: Gilbert Chen Cc: Palmer Dabbelt Signed-off-by: Abner Chang --- Platform/SiFive/U5SeriesPkg/U5SeriesPkg.dec | 33 +++++++ Platform/SiFive/U5SeriesPkg/Readme.md | 110 +++++++++++++++++= ++++++ Platform/SiFive/U5SeriesPkg/U5SeriesPkg.uni | 13 +++ Platform/SiFive/U5SeriesPkg/U5SeriesPkgExtra.uni | 12 +++ 4 files changed, 168 insertions(+) create mode 100644 Platform/SiFive/U5SeriesPkg/U5SeriesPkg.dec create mode 100644 Platform/SiFive/U5SeriesPkg/Readme.md create mode 100644 Platform/SiFive/U5SeriesPkg/U5SeriesPkg.uni create mode 100644 Platform/SiFive/U5SeriesPkg/U5SeriesPkgExtra.uni diff --git a/Platform/SiFive/U5SeriesPkg/U5SeriesPkg.dec b/Platform/SiFiv= e/U5SeriesPkg/U5SeriesPkg.dec new file mode 100644 index 0000000..a01135b --- /dev/null +++ b/Platform/SiFive/U5SeriesPkg/U5SeriesPkg.dec @@ -0,0 +1,33 @@ +## @file U5SeriesPkg.dec +# This Package provides modules and libraries.for SiFive U5 series platf= orms. +# +# Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rig= hts reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION =3D 0x0001001b + PACKAGE_NAME =3D U5SeriesPkg + PACKAGE_UNI_FILE =3D U5SeriesPkg.uni + PACKAGE_GUID =3D AD6E43CA-7FED-4CEA-8151-68B2C5F12B3= A + PACKAGE_VERSION =3D 1.0 + +[Includes] + Include + +[LibraryClasses] + +[Guids] + gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid =3D {0x725B804B, 0x10B5, 0x= 4326, { 0xAD, 0xFF, 0x59, 0xCE, 0x6E, 0xFD, 0x5B, 0x36 }} + +[PcdsFixedAtBuild] + gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdNumberofU5Cores|0x8|UINT3= 2|0x00001000 + gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdE5MCSupported|TRUE|BOOLEA= N|0x00001001 + gSiFiveU5SeriesPlatformsPkgTokenSpaceGuid.PcdU5UartBase|0x0|UINT32|0x0= 0001002 + +[PcdsPatchableInModule] + +[UserExtensions.TianoCore."ExtraFiles"] + U5SeriesPkg.uni diff --git a/Platform/SiFive/U5SeriesPkg/Readme.md b/Platform/SiFive/U5Se= riesPkg/Readme.md new file mode 100644 index 0000000..535fa9d --- /dev/null +++ b/Platform/SiFive/U5SeriesPkg/Readme.md @@ -0,0 +1,110 @@ +=EF=BB=BF# Introduction +U5SeriesPkg provides the common EFI library and driver modules for SiFiv= e +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-riscv-v2-PATCHv5 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 Gett= ing +Started Guide" on https://www.sifive.com/documentation. + +## U540 Platform +This is a sample RISC-V EDK2 platform package used agaist 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/FreedomU540HiFiveUnleashedBoard ca= n run +on main stream [QEMU](https://git.qemu.org/?p=3Dqemu.git;a=3Dsummary) +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-riscv-v2-PATCHv5 branch +git clone https://github.com/tianocore/edk2-non-osi.git +``` + +## Platform Owners +Chang, Abner +Chen, Gilbert + +## Platform Status +Currently the binary built from U500Pkg can boot SiFive Freedom U500 VC7= 07 +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/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.pris= mic.io/sifive%2Fc248fabc-5e44-4412-b1c3-6bb6aac73a2c_sifive-u500-vc707-ge= ttingstarted-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 u= p +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-spec= ific +timer implementation. + +## U500 Platform Libraries and Drivers +### RiscVOpnesbiPlatformLib +In order to reduce the dependencies with RISC-V OpenSBI project +(https://github.com/riscv/opensbi) and less burdens to EDK2 build proces= s, the +implementation of RISC-V EDK2 platform is leverage platform source code = from +OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned f= rom +RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 buil= d +environment. + +### PlatformPei +This is the platform-implementation specific library which is executed i= n early +PEI phase for U500 platform initialization. + +## U540 Platform Libraries and Drivers +### RiscVOpnesbiPlatformLib +In order to reduce the dependencies with RISC-V OpenSBI project +(https://github.com/riscv/opensbi) and less burdens to EDK2 build proces= s, the +implementation of RISC-V EDK2 platform is leverage platform source code = from +OpenSBI code tree. The "platform.c" under OpenSbiPlatformLib is cloned f= rom +RISC-V OpenSBI code tree (in EDK2 RiscVPkg) and built based on EDK2 buil= d +environment. + +### PlatformPei +This is the platform-implementation specific library which is executed i= n 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| diff --git a/Platform/SiFive/U5SeriesPkg/U5SeriesPkg.uni b/Platform/SiFiv= e/U5SeriesPkg/U5SeriesPkg.uni new file mode 100644 index 0000000..12e8c15 --- /dev/null +++ b/Platform/SiFive/U5SeriesPkg/U5SeriesPkg.uni @@ -0,0 +1,13 @@ +// /** @file +// SiFive U5 Series Package Localized Strings and Content. +// +// Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All ri= ghts reserved.
+// +// 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 Si= FIve RISC-V U5 series platform modules and libraries." diff --git a/Platform/SiFive/U5SeriesPkg/U5SeriesPkgExtra.uni b/Platform/= SiFive/U5SeriesPkg/U5SeriesPkgExtra.uni new file mode 100644 index 0000000..244595a --- /dev/null +++ b/Platform/SiFive/U5SeriesPkg/U5SeriesPkgExtra.uni @@ -0,0 +1,12 @@ +// /** @file +// SiFive U5 Series Package Localized Strings and Content. +// +// Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All ri= ghts reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_PACKAGE_NAME +#language en-US +"SiFive U5 series platform package" --=20 2.7.4