From 15990546a5c26742fcbc7f7aa56b2a6db09dc643 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 8 Feb 2021 07:06:32 -0800 Subject: [PATCH] gnu: u-boot-puma-rk3399: Switch to using arm-trusted-firmware-rk3399. * gnu/packages/bootloaders.scm (u-boot-puma-rk3399)[native-inputs]: Add arm-trusted-firmware-rk3399. Remove arm-trusted-firmware-puma-rk3399 and rk3399-cortex-m0. * gnu/packages/firmware.scm (arm-trusted-firmware-puma-rk3399, rk3399-cortex-m0): Remove obsolete variables. * gnu/bootloader/u-boot.scm (install-puma-rk3399-u-boot): Install idbloader.img. --- gnu/bootloader/u-boot.scm | 2 +- gnu/packages/bootloaders.scm | 35 +++++++------------- gnu/packages/firmware.scm | 63 ------------------------------------ 3 files changed, 13 insertions(+), 87 deletions(-) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index c57d4964c8..6f4dc94828 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -91,7 +91,7 @@ (define install-puma-rk3399-u-boot #~(lambda (bootloader root-index image) - (let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd")) + (let ((spl (string-append bootloader "/libexec/idbloader.img")) (u-boot (string-append bootloader "/libexec/u-boot.itb"))) (write-file-on-device spl (stat:size (stat spl)) image (* 64 512)) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 60556dc501..99281b2cc6 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -813,30 +813,19 @@ to Novena upstream, does not load u-boot.img from the first partition.") (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"))))))) + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'set-environment + (lambda* (#:key inputs #:allow-other-keys) + (setenv "BL31" (string-append (assoc-ref inputs "firmware") + "/bl31.elf")) + #t)) + ;; Phases do not succeed on the bl31 ELF. + (delete 'strip) + (delete 'validate-runpath))))) (native-inputs - `(("firmware" ,arm-trusted-firmware-puma-rk3399) - ("firmware-m0" ,rk3399-cortex-m0) + `(("firmware" ,arm-trusted-firmware-rk3399) ,@(package-native-inputs base)))))) (define-public u-boot-qemu-riscv64 diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index eb422af8b5..c9a68f5a93 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -550,26 +550,6 @@ such as: (define-public arm-trusted-firmware-rk3328 (make-arm-trusted-firmware "rk3328")) -(define-public arm-trusted-firmware-puma-rk3399 - (let ((base (make-arm-trusted-firmware "rk3399")) - ;; Vendor's arm trusted firmware branch hasn't been upstreamed yet. - (commit "d71e6d83612df896774ec4c03d49500312d2c324") - (revision "1")) - (package - (inherit base) - (name "arm-trusted-firmware-puma-rk3399") - (version (git-version "1.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.theobroma-systems.com/arm-trusted-firmware.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vqhwqqh8h9qlkpybg2v94911091c1418bc4pnzq5fd7zf0fjkf8"))))))) - (define-public arm-trusted-firmware-rk3399 (let ((base (make-arm-trusted-firmware "rk3399"))) (package @@ -579,46 +559,3 @@ such as: `(("cross32-gcc" ,(cross-gcc "arm-none-eabi")) ("cross32-binutils", (cross-binutils "arm-none-eabi")) ,@(package-native-inputs base)))))) - -(define-public rk3399-cortex-m0 - (package - (name "rk3399-cortex-m0") - (version "1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.theobroma-systems.com/rk3399-cortex-m0.git") - (commit (string-append "v" version)))) - (file-name (git-file-name "rk3399-cortex-m0" version)) - (sha256 - (base32 - "02wz1vkf4j3zc8rx289z76xhrf71jhb2p05lvmygky393a9gjh9w")))) - (home-page "https://git.theobroma-systems.com/rk3399-cortex-m0.git/about/") - (synopsis "PMU Cortex M0 firmware for RK3399 Q7 (Puma)") - (description - "Cortex-M0 firmware used with the RK3399 to implement -power-management functionality and helpers (e.g. DRAM frequency -switching support).\n") - (license license:bsd-3) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (mzerofiles (find-files "." "rk3399m0.(elf|bin)$"))) - (for-each - (lambda (file) - (install-file file out)) - mzerofiles)) - #t)) - (add-before 'build 'setenv - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CROSS_COMPILE" "arm-none-eabi-") - #t))))) - (native-inputs `(("cross-gcc" ,(cross-gcc "arm-none-eabi" #:xgcc gcc-7)) - ("cross-binutils" ,(cross-binutils "arm-none-eabi"))))))