Package: guix-patches;
Reported by: Vagrant Cascadian <vagrant <at> debian.org>
Date: Fri, 25 May 2018 22:31:02 UTC
Severity: normal
Tags: patch
Done: Danny Milosavljevic <dannym <at> scratchpost.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Vagrant Cascadian <vagrant <at> debian.org> Subject: bug#31599: closed (Re: [bug#31599] [PATCH v2] system: Add u-boot-puma-rk3399.) Date: Tue, 29 May 2018 08:52:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #31599: [PATCH] system: Add u-boot-puma-rk3399. which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 31599 <at> debbugs.gnu.org. -- 31599: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31599 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Danny Milosavljevic <dannym <at> scratchpost.org> To: Vagrant Cascadian <vagrant <at> debian.org> Cc: 31599-done <at> debbugs.gnu.org Subject: Re: [bug#31599] [PATCH v2] system: Add u-boot-puma-rk3399. Date: Tue, 29 May 2018 10:51:40 +0200[Message part 3 (text/plain, inline)]On Mon, 28 May 2018 21:10:15 -0700 Vagrant Cascadian <vagrant <at> debian.org> wrote: > + (apply invoke "./tools/mkimage" > + `(,"-T" ,"rksd" ,"-n" ,"rk3399" ,"-d" ,"spl/u-boot-spl.bin" ,"u-boot-spl.rksd") Heh, this is neutral. So (invoke "./tools/mkimage" "-T" "rksd" "-n" "rk3399" "-d" "spl/u-boot-spl.bin" "u-boot-spl.rksd") works fine. So I've changed it to that. I've pushed it to guix master. Let's see what our aarch64 machines say about the cross-compilation (probably doesn't work yet - but meh).[Message part 4 (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
From: Vagrant Cascadian <vagrant <at> debian.org> To: guix-patches <at> gnu.org Subject: [PATCH] system: Add u-boot-puma-rk3399. Date: Fri, 25 May 2018 15:29:40 -0700[Message part 6 (text/plain, inline)]The attached patch enables u-boot for puma-rk3399. It enables a build of the vendor's arm-trusted-firmware/rk3399-cortex-m0, and the installation offsets to install the u-boot to microSD. Tested running on a puma-rk3399-haikou board running GuixSD! There is one glitch, which is that the fdtfile variable in u-boot (rockchip/rk3399-puma-ddr1600.dtb) does not match the device-tree present in linux-libre (rockchip/rk3399-puma-haikou.dtb), so the fdtfile u-boot variable needs to manually be set at boot to match linux-libre. This is likely to be fixed in future u-boot versions. Vagrant Cascadian (1): system: Add u-boot-puma-rk3399. gnu/bootloader/u-boot.scm | 16 +++++++++++ gnu/packages/bootloaders.scm | 36 ++++++++++++++++++++++++- gnu/packages/firmware.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++ gnu/system/install.scm | 6 +++++ 4 files changed, 121 insertions(+), 1 deletion(-) -- 2.11.0[0001-system-Add-u-boot-puma-rk3399.patch (text/x-diff, inline)]From 1e070fe4c33c774992cb712bd78745b91ccef307 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagrant <at> debian.org> Date: Fri, 25 May 2018 13:04:17 -0700 Subject: [PATCH 1/1] 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. --- gnu/bootloader/u-boot.scm | 16 +++++++++++ gnu/packages/bootloaders.scm | 36 ++++++++++++++++++++++++- gnu/packages/firmware.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++ gnu/system/install.scm | 6 +++++ 4 files changed, 121 insertions(+), 1 deletion(-) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index ea0f67b3c..52b38dd1a 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -37,6 +37,7 @@ u-boot-nintendo-nes-classic-edition-bootloader u-boot-novena-bootloader u-boot-pine64-plus-bootloader + u-boot-puma-rk3399-bootloader u-boot-wandboard-bootloader)) (define install-u-boot @@ -84,6 +85,15 @@ (write-file-on-device u-boot (stat:size (stat u-boot)) device (* 69 1024))))) +(define install-puma-rk3399-u-boot + #~(lambda (bootloader device mount-point) + (let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd")) + (u-boot (string-append bootloader "/libexec/u-boot.itb"))) + (write-file-on-device spl (stat:size (stat spl)) + device (* 64 512)) + (write-file-on-device u-boot (stat:size (stat u-boot)) + device (* 512 512))))) + ;;; @@ -162,3 +172,9 @@ (bootloader (inherit u-boot-allwinner64-bootloader) (package u-boot-pine64-plus))) + +(define u-boot-puma-rk3399-bootloader + (bootloader + (inherit u-boot-bootloader) + (package u-boot-puma-rk3399) + (installer install-puma-rk3399-u-boot))) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 333f30e72..3c76b8b3d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -450,7 +450,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) @@ -521,6 +521,40 @@ 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"))) + (add-after 'build 'builditb + (lambda* (#:key make-flags #:allow-other-keys) + ;; The u-boot.itb is not built by default + (zero? (apply system* "make" `(,@make-flags ,"u-boot.itb"))))) + (add-after 'builditb 'buildrksd + (lambda* (#:key inputs #:allow-other-keys) + ;; Build rockchip SD card images. + (zero? (apply system* + (string-append + (assoc-ref inputs "u-boot-tools") "/bin/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) + ("u-boot-tools" ,u-boot-tools) + ,@(package-native-inputs base)))))) + (define-public vboot-utils (package (name "vboot-utils") diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 9e91ceca4..7bc12de38 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -404,3 +404,67 @@ such as: (sha256 (base32 "0r4xnlq7v9khjfcg6gqp7nmrmnw4z1r8bipwdr07png1dcbb8214"))))))) + +(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 (string-append "1.3-" revision "." (string-take commit 7))) + (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 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")))))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 3efff915a..51f9e55ed 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -53,6 +53,7 @@ nintendo-nes-classic-edition-installation-os novena-installation-os pine64-plus-installation-os + rk3399-puma-installation-os wandboard-installation-os)) ;;; Commentary: @@ -453,6 +454,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." "/dev/mmcblk0" ; SD card storage "ttyS0")) +(define rk3399-puma-installation-os + (embedded-installation-os u-boot-puma-rk3399-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + (define wandboard-installation-os (embedded-installation-os u-boot-wandboard-bootloader "/dev/mmcblk0" ; SD card storage -- 2.11.0[signature.asc (application/pgp-signature, inline)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.