aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bootloaders.scm
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@debian.org>2018-05-28 21:10:15 -0700
committerDanny Milosavljevic <dannym@scratchpost.org>2018-05-29 10:46:13 +0200
commit6fe165770539a4551b303dc5cd52db6c51c7604a (patch)
treeae271a8af36d02daabaae9935151decbcc88e2c3 /gnu/packages/bootloaders.scm
parent2a49aee4d120cd3a8bfd855578f0b8832db88227 (diff)
downloadguix-6fe165770539a4551b303dc5cd52db6c51c7604a.tar
guix-6fe165770539a4551b303dc5cd52db6c51c7604a.tar.gz
system: Add u-boot-puma-rk3399.
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399): New variable. (make-u-boot-package)[arguments]: Add '.rksd' files to the files installed during custom 'install phase. * gnu/bootloader/u-boot.scm (u-boot-puma-rk3399-bootloader): New exported variable. * gnu/system/install.scm (rk3399-puma-installation-os): New exported variable. * gnu/packages/firmware.scm (arm-trusted-firmware-puma-rk3399): New variable. (rk3399-cortex-m0): New variable. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
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")