diff options
Diffstat (limited to 'gnu/packages/firmware.scm')
| -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 () | 
