diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2023-12-19 14:05:57 +0200 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-12-19 16:27:13 +0200 |
commit | d542593092d93667cee28ba5b8bbca9d1469985e (patch) | |
tree | 6fc883f9168b39363fee17aaa1c5ebcb4f16092c /gnu | |
parent | 7a7ba2d07573c1c4ed6be63c615727ad22f4caac (diff) | |
download | guix-d542593092d93667cee28ba5b8bbca9d1469985e.tar.gz guix-d542593092d93667cee28ba5b8bbca9d1469985e.zip |
gnu: Add ovmf-riscv64.
* gnu/packages/firmware.scm (ovmf-riscv64): New variable.
Change-Id: I483bc4496d7874cc0e9983de36cfc7a90ef7591c
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/firmware.scm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 222eec07e8..3bb6eff1ec 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -1040,6 +1040,44 @@ Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.") (string-append fmw "/ovmf_arm.bin"))))))))) (supported-systems %supported-systems)))) +(define-public ovmf-riscv64 + (let ((toolchain-ver "GCC5")) + (package + (inherit ovmf) + (name "ovmf-riscv64") + (native-inputs + (append (package-native-inputs ovmf) + (if (not (string-prefix? "riscv64" (%current-system))) + `(("cross-gcc" ,(cross-gcc "riscv64-linux-gnu")) + ("cross-binutils" ,(cross-binutils "riscv64-linux-gnu"))) + '()))) + (arguments + (substitute-keyword-arguments (package-arguments ovmf) + ((#:phases phases) + #~(modify-phases #$phases + #$@(if (string-prefix? "riscv64" (%current-system)) + '() + #~((add-before 'configure 'set-env + (lambda _ + (setenv (string-append #$toolchain-ver "_RISCV64_PREFIX") + "riscv64-linux-gnu-"))))) + (replace 'build + (lambda _ + (invoke "build" "-a" "RISCV64" "-t" #$toolchain-ver + "-p" "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc"))) + (delete 'build-x64) + (replace 'install + (lambda _ + (let ((fmw (string-append #$output "/share/firmware"))) + (mkdir-p fmw) + (copy-file (string-append "Build/RiscVVirtQemu/RELEASE_" + #$toolchain-ver "/FV/RISCV_VIRT_CODE.fd") + (string-append fmw "/RISCV_VIRT_CODE.fd")) + (copy-file (string-append "Build/RiscVVirtQemu/RELEASE_" + #$toolchain-ver "/FV/RISCV_VIRT_VARS.fd") + (string-append fmw "/RISCV_VIRT_VARS.fd"))))))))) + (supported-systems %supported-systems)))) + (define* (make-arm-trusted-firmware platform #:key (triplet "aarch64-linux-gnu")) (let ((native-build? (lambda () |