diff options
Diffstat (limited to 'px/packages/bootloaders.scm')
-rw-r--r-- | px/packages/bootloaders.scm | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/px/packages/bootloaders.scm b/px/packages/bootloaders.scm new file mode 100644 index 0000000..3e5e49c --- /dev/null +++ b/px/packages/bootloaders.scm @@ -0,0 +1,64 @@ +;;; Bootloader definitions for PantherX OS +;;; Author: Reza Alizadeh Majd <r.majd@pantherx.org> +;;; + +(define-module (px packages bootloaders) + #:use-module (gnu bootloader) + #:use-module (gnu bootloader u-boot) + #:use-module (gnu packages) + #:use-module (gnu packages bootloaders) + #:use-module (gnu packages firmware) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix utils) + ; #:export (u-boot-khadas-edge-rk3399-bootloader) +) + +;;; required items: +;;; 1. bootloader package +;;; 2. bootloader definition +;;; + +; (define-public u-boot-khadas-edge-rk3399 +; (let ((base (make-u-boot-package "khadas-edge-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) +; ;; Reference: +; ;; https://github.com/krescue/khadas-uboot/blob/2a2c7b5058b8cf26b4aa315d463f2c32c32d1abb/packages/arm-trusted-firmware/package.mk#L23 +; (setenv "BL31" (string-append (assoc-ref inputs "firmware") +; "/bl31.elf")) +; #t)) +; ;; Phases do not succeed on bl31 ELF. +; (delete 'strip) +; (delete 'validate-runpath))))) +; (native-inputs +; `(("firmware" ,arm-trusted-firmware-rk3399) +; ,@(package-native-inputs base)))))) + + +; (define install-khadas-edge-rk3399-u-boot +; #~(lambda (bootloader root-index image) +; (let ((idb (string-append bootloader "/libexec/idbloader.img")) +; (u-boot (string-append bootloader "/libexec/u-boot.itb"))) +; ;; (write-file-on-device file size device offset) +; ;; TODO: we might need to update offset +; (write-file-on-device idb (stat:size (stat idb)) +; image (* 64 512)) +; (write-file-on-device u-boot (stat:size (stat u-boot)) +; image (* 16384 512))))) + +; (define u-boot-khadas-edge-rk3399-bootloader +; (bootloader +; (inherit u-boot-bootloader) +; (package u-boot-khadas-edge-rk3399) +; (disk-image-installer install-khadas-edge-rk3399-u-boot))) + + +(define-public u-boot-rpi-arm64 + (make-u-boot-package "rpi_arm64" "aarch64-linux-gnu"))
\ No newline at end of file |