aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bootloaders.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r--gnu/packages/bootloaders.scm33
1 files changed, 32 insertions, 1 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 2dd530125f..a86c73731e 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -489,7 +489,7 @@ board-independent tools.")))
(let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec"))
(uboot-files (append
- (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb)$")
+ (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$")
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
@@ -560,6 +560,37 @@ board-independent tools.")))
(define-public u-boot-cubieboard
(make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
+(define-public u-boot-puma-rk3399
+ (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
+ (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)
+ ;; Need to copy the firmware into u-boot build
+ ;; directory.
+ (copy-file (string-append (assoc-ref inputs "firmware")
+ "/bl31.bin") "bl31-rk3399.bin")
+ (copy-file (string-append (assoc-ref inputs "firmware-m0")
+ "/rk3399m0.bin") "rk3399m0.bin")
+ #t))
+ (add-after 'build 'build-itb
+ (lambda* (#:key make-flags #:allow-other-keys)
+ ;; The u-boot.itb is not built by default.
+ (apply invoke "make" `(,@make-flags ,"u-boot.itb"))))
+ (add-after 'build-itb 'build-rksd
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Build Rockchip SD card images.
+ (invoke "./tools/mkimage" "-T" "rksd" "-n" "rk3399" "-d"
+ "spl/u-boot-spl.bin" "u-boot-spl.rksd")))))))
+ (native-inputs
+ `(("firmware" ,arm-trusted-firmware-puma-rk3399)
+ ("firmware-m0" ,rk3399-cortex-m0)
+ ,@(package-native-inputs base))))))
+
(define-public vboot-utils
(package
(name "vboot-utils")