Subject: [bug#70892] [PATCH v2 5/7] gnu: Add u-boot-starfive-visionfive2.

From: Zheng Junjie <[email-masked]>
Date: Sun, 19 May 2024 01:43:02 +0800

* gnu/packages/bootloaders.scm (u-boot-starfive-visionfive2): New variable.

Change-Id: I2a7d2275b1a0f4253ffc3152c892687aae11a471
---
 gnu/packages/bootloaders.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index cfe8046731..20af6fcee1 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Stefan <[email-masked]>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2023 Herman Rimm <[email-masked]>
+;;; Copyright © 2024 Zheng Junjie <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1343,6 +1344,30 @@ (define-public u-boot-sifive-unmatched
        (modify-inputs (package-inputs base)
          (append opensbi-generic))))))
 
+(define-public u-boot-starfive-visionfive2
+  (let ((base (make-u-boot-package "starfive_visionfive2" "riscv64-linux-gnu"
+                                   ;; Allow kernel-arguments pass more content.
+                                   ;; If out of range, boot will fail.
+                                   #:configs '("CONFIG_SYS_CBSIZE=1024"))))
+    (package
+      (inherit base)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          #~(modify-phases #$phases
+              (add-after 'unpack 'set-environment
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (setenv "OPENSBI" (search-input-file inputs
+                                                       "fw_dynamic.bin"))))
+              (add-after 'install 'install-u-boot-spl.bin.normal.out
+                (lambda _
+                  (install-file "spl/u-boot-spl.bin.normal.out"
+                                (string-append #$output
+                                               "/libexec/spl"))))))))
+      (inputs
+       (modify-inputs (package-inputs base)
+         (append opensbi-for-visionfive2))))))
+
 (define-public u-boot-rock64-rk3328
   (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
     (package
-- 
2.41.0