diff options
| -rw-r--r-- | gnu/bootloader/u-boot.scm | 17 | ||||
| -rw-r--r-- | gnu/packages/bootloaders.scm | 26 | ||||
| -rw-r--r-- | gnu/system/install.scm | 6 |
3 files changed, 49 insertions, 0 deletions
diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 4f98be2483a..20eabc370c2 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | u-boot-pine64-plus-bootloader | 34 | u-boot-pine64-plus-bootloader |
| 35 | u-boot-pinebook-bootloader | 35 | u-boot-pinebook-bootloader |
| 36 | u-boot-puma-rk3399-bootloader | 36 | u-boot-puma-rk3399-bootloader |
| 37 | u-boot-rock64-rk3328-bootloader | ||
| 37 | u-boot-rockpro64-rk3399-bootloader | 38 | u-boot-rockpro64-rk3399-bootloader |
| 38 | u-boot-wandboard-bootloader)) | 39 | u-boot-wandboard-bootloader)) |
| 39 | 40 | ||
| @@ -91,6 +92,15 @@ | |||
| 91 | (write-file-on-device u-boot (stat:size (stat u-boot)) | 92 | (write-file-on-device u-boot (stat:size (stat u-boot)) |
| 92 | device (* 512 512))))) | 93 | device (* 512 512))))) |
| 93 | 94 | ||
| 95 | (define install-rock64-rk3328-u-boot | ||
| 96 | #~(lambda (bootloader device mount-point) | ||
| 97 | (let ((idb (string-append bootloader "/libexec/idbloader.img")) | ||
| 98 | (u-boot (string-append bootloader "/libexec/u-boot.itb"))) | ||
| 99 | (write-file-on-device idb (stat:size (stat idb)) | ||
| 100 | device (* 64 512)) | ||
| 101 | (write-file-on-device u-boot (stat:size (stat u-boot)) | ||
| 102 | device (* 16384 512))))) | ||
| 103 | |||
| 94 | (define install-rockpro64-rk3399-u-boot | 104 | (define install-rockpro64-rk3399-u-boot |
| 95 | #~(lambda (bootloader device mount-point) | 105 | #~(lambda (bootloader device mount-point) |
| 96 | (let ((idb (string-append bootloader "/libexec/idbloader.img")) | 106 | (let ((idb (string-append bootloader "/libexec/idbloader.img")) |
| @@ -190,6 +200,13 @@ | |||
| 190 | (package u-boot-puma-rk3399) | 200 | (package u-boot-puma-rk3399) |
| 191 | (installer install-puma-rk3399-u-boot))) | 201 | (installer install-puma-rk3399-u-boot))) |
| 192 | 202 | ||
| 203 | (define u-boot-rock64-rk3328-bootloader | ||
| 204 | ;; SD and eMMC use the same format | ||
| 205 | (bootloader | ||
| 206 | (inherit u-boot-bootloader) | ||
| 207 | (package u-boot-rock64-rk3328) | ||
| 208 | (installer install-rock64-rk3328-u-boot))) | ||
| 209 | |||
| 193 | (define u-boot-rockpro64-rk3399-bootloader | 210 | (define u-boot-rockpro64-rk3399-bootloader |
| 194 | ;; SD and eMMC use the same format | 211 | ;; SD and eMMC use the same format |
| 195 | (bootloader | 212 | (bootloader |
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 45e1b8fc1cb..d2f4d511db8 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm | |||
| @@ -759,6 +759,32 @@ to Novena upstream, does not load u-boot.img from the first partition.") | |||
| 759 | ("firmware-m0" ,rk3399-cortex-m0) | 759 | ("firmware-m0" ,rk3399-cortex-m0) |
| 760 | ,@(package-native-inputs base)))))) | 760 | ,@(package-native-inputs base)))))) |
| 761 | 761 | ||
| 762 | (define-public u-boot-rock64-rk3328 | ||
| 763 | (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu"))) | ||
| 764 | (package | ||
| 765 | (inherit base) | ||
| 766 | (version (package-version u-boot-2019.10)) | ||
| 767 | (source (package-source u-boot-2019.10)) | ||
| 768 | (arguments | ||
| 769 | (substitute-keyword-arguments (package-arguments base) | ||
| 770 | ((#:phases phases) | ||
| 771 | `(modify-phases ,phases | ||
| 772 | (add-after 'unpack 'set-environment | ||
| 773 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 774 | (let ((bl31 (string-append (assoc-ref inputs "firmware") | ||
| 775 | "/bl31.elf"))) | ||
| 776 | (setenv "BL31" bl31)) | ||
| 777 | #t)) | ||
| 778 | (add-after 'unpack 'add-u-boot-itb | ||
| 779 | (lambda _ | ||
| 780 | (substitute* "Kconfig" | ||
| 781 | (("default .u-boot.itb. if SPL_LOAD_FIT && .ROCKCHIP_RK3399") | ||
| 782 | "default \"u-boot.itb\" if SPL_LOAD_FIT && (ARCH_ROCKCHIP")) | ||
| 783 | #t)))))) | ||
| 784 | (native-inputs | ||
| 785 | `(("firmware" ,arm-trusted-firmware-rk3328) | ||
| 786 | ,@(package-native-inputs base)))))) | ||
| 787 | |||
| 762 | (define-public u-boot-rockpro64-rk3399 | 788 | (define-public u-boot-rockpro64-rk3399 |
| 763 | (let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"))) | 789 | (let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"))) |
| 764 | (package | 790 | (package |
diff --git a/gnu/system/install.scm b/gnu/system/install.scm index eab36492695..a4502855976 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | novena-installation-os | 62 | novena-installation-os |
| 63 | pine64-plus-installation-os | 63 | pine64-plus-installation-os |
| 64 | pinebook-installation-os | 64 | pinebook-installation-os |
| 65 | rock64-installation-os | ||
| 65 | rockpro64-installation-os | 66 | rockpro64-installation-os |
| 66 | rk3399-puma-installation-os | 67 | rk3399-puma-installation-os |
| 67 | wandboard-installation-os | 68 | wandboard-installation-os |
| @@ -584,6 +585,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." | |||
| 584 | "/dev/mmcblk0" ; SD card storage | 585 | "/dev/mmcblk0" ; SD card storage |
| 585 | "ttyS0")) | 586 | "ttyS0")) |
| 586 | 587 | ||
| 588 | (define rock64-installation-os | ||
| 589 | (embedded-installation-os u-boot-rock64-rk3328-bootloader | ||
| 590 | "/dev/mmcblk0" ; SD card/eMMC (SD priority) storage | ||
| 591 | "ttyS2")) ; UART2 connected on the Pi2 bus | ||
| 592 | |||
| 587 | (define rockpro64-installation-os | 593 | (define rockpro64-installation-os |
| 588 | (embedded-installation-os u-boot-rockpro64-rk3399-bootloader | 594 | (embedded-installation-os u-boot-rockpro64-rk3399-bootloader |
| 589 | "/dev/mmcblk0" ; SD card/eMMC (SD priority) storage | 595 | "/dev/mmcblk0" ; SD card/eMMC (SD priority) storage |
