On 2020-02-10 08:13, Schaefer, Daniel Helmut (DualStudy) wrote: > if you want to update to opensbi master, please apply this patch. > Since opensbi 0.6 hasn't been released yet, we haven't pushed the > fixes yet. > Atish said it will be out soon.
Thanks! That worked, with a couple of changes. It seems commit ec29e1cf73ffe96a646daa7c2b288aa280e4be37 isn't in the opensbi repo, and the latest master code requires the following patch (I'm assuming 64-bit MMIO _is_ supported!): diff --git a/Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c b/Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c index 3b3637995d..f72122b21b 100644 --- a/Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c +++ b/Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/Library/OpensbiPlatformLib/Platform.c @@ -168,7 +168,7 @@ static int U540_timer_init(bool cold_boot) if (cold_boot) { rc = clint_cold_timer_init(CLINT_REG_BASE_ADDR, - U540_HART_COUNT); + U540_HART_COUNT, TRUE);^M if (rc) return rc; } I don't know if Platform/SiFive/U5SeriesPkg/Readme.md is still used, but I noticed it's a bit out-of-date, and I believe the following patch fixes some issues including typos: diff --git a/Platform/SiFive/U5SeriesPkg/Readme.md b/Platform/SiFive/U5SeriesPkg/Readme.md index 535fa9d430..d6db7c9150 100644 --- a/Platform/SiFive/U5SeriesPkg/Readme.md +++ b/Platform/SiFive/U5SeriesPkg/Readme.md @@ -4,8 +4,8 @@ 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) +- **U5SeriesPkg**, edk2-platforms master branch^M + (Currently is in edk2-platforms/devel-riscvplatforms branch)^M - **RiscVPlatformPkg**, edk2 master branch (Currently is in edk2-staging/RISC-V-V2 branch) - **RiscVPkg**, edk2 master branch @@ -17,11 +17,11 @@ 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 agaist SiFive Freedom U540 +This is a sample RISC-V EDK2 platform package used against SiFive Freedom U540^M HiFive Unleashed development board, please refer to "SiFive Freedom U540-C000 Manual" on https://www.sifive.com. -The binary built from Platform/SiFive/FreedomU540HiFiveUnleashedBoard can run -on main stream [QEMU](https://git.qemu.org/?p=qemu.git;a=summary) +The binary built from Platform/SiFive/U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/^M +can run on main stream [QEMU](https://git.qemu.org/?p=qemu.git;a=summary)^M using qemu-system-riscv64 under riscv64-softmmu. Launch the binary with ``` @@ -33,8 +33,7 @@ using qemu-system-riscv64 under riscv64-softmmu. Launch the binary with 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 +# Checkout devel-riscvplatforms branch^M ``` ## Platform Owners @@ -47,7 +46,7 @@ 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` +`build -a RISCV64 -t GCC5 -p Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc`^M ## Supported Operating Systems Only support to boot to EFI Shell so far. @@ -68,18 +67,18 @@ 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 +This is common U5 series platform timer library which has the^M platform-specific timer implementation. ### TimerDxe -This is U5 series platform timer DXE driver whcih has the platform-specific +This is U5 series platform timer DXE driver which has the platform-specific^M timer implementation. ## U500 Platform Libraries and Drivers -### RiscVOpnesbiPlatformLib +### RiscVOpensbiPlatformLib^M In order to reduce the dependencies with RISC-V OpenSBI project -(https://github.com/riscv/opensbi) and less burdens to EDK2 build process, the -implementation of RISC-V EDK2 platform is leverage platform source code from +(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the^M +implementation of RISC-V EDK2 platform is leveraging platform source code from^M 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. @@ -89,10 +88,10 @@ This is the platform-implementation specific library which is executed in early PEI phase for U500 platform initialization. ## U540 Platform Libraries and Drivers -### RiscVOpnesbiPlatformLib +### RiscVOpensbiPlatformLib^M In order to reduce the dependencies with RISC-V OpenSBI project -(https://github.com/riscv/opensbi) and less burdens to EDK2 build process, the -implementation of RISC-V EDK2 platform is leverage platform source code from +(https://github.com/riscv/opensbi) and fewer burdens to EDK2 build process, the^M +implementation of RISC-V EDK2 platform is leveraging platform source code from^M 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. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#54149): https://edk2.groups.io/g/devel/message/54149 Mute This Topic: https://groups.io/mt/71125320/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-