summary refs log tree commit diff
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2018-01-19 00:25:13 +0100
committerDanny Milosavljevic <dannym@scratchpost.org>2018-01-20 20:33:10 +0100
commit30aeb846d7516d534aebeee76be4a920195e8d50 (patch)
tree5daa12e5e976c7a86a59c64567056b81b509910e
parented19fea0e54495788d8984d6b68b9f9aa89a257c (diff)
downloadguix-30aeb846d7516d534aebeee76be4a920195e8d50.tar.gz
system: Add Banana Pi M2 Ultra installer.
* gnu/bootloader/u-boot.scm (u-boot-banana-pi-m2-ultra-bootloader): New
exported variable.
(install-allwinner-u-boot): New variable.
(u-boot-allwinner-bootloader): New variable.
* gnu/packages/bootloaders.scm (u-boot-banana-pi-m2-ultra): New exported
variable.
* gnu/system/install.scm (banana-pi-m2-ultra-installation-os): New exported
variable.
-rw-r--r--gnu/bootloader/u-boot.scm18
-rw-r--r--gnu/packages/bootloaders.scm3
-rw-r--r--gnu/system/install.scm17
3 files changed, 38 insertions, 0 deletions
diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm
index 397eb8181c..1e3178adfc 100644
--- a/gnu/bootloader/u-boot.scm
+++ b/gnu/bootloader/u-boot.scm
@@ -28,6 +28,7 @@
   #:use-module (guix records)
   #:use-module (guix utils)
   #:export (u-boot-bootloader
+            u-boot-banana-pi-m2-ultra-bootloader
             u-boot-beaglebone-black-bootloader))
 
 (define install-u-boot
@@ -50,6 +51,13 @@
         (write-file-on-device u-boot (* 1024 512)
                               device (* 768 512)))))
 
+(define install-allwinner-u-boot
+  #~(lambda (bootloader device mount-point)
+      (let ((u-boot (string-append bootloader
+                                   "/libexec/u-boot-sunxi-with-spl.bin")))
+        (write-file-on-device u-boot (stat:size (stat u-boot))
+                              device (* 8 1024)))))
+
 
 
 ;;;
@@ -68,3 +76,13 @@
    (inherit u-boot-bootloader)
    (package u-boot-beagle-bone-black)
    (installer install-beaglebone-black-u-boot)))
+
+(define u-boot-allwinner-bootloader
+  (bootloader
+   (inherit u-boot-bootloader)
+   (installer install-allwinner-u-boot)))
+
+(define u-boot-banana-pi-m2-ultra-bootloader
+  (bootloader
+   (inherit u-boot-allwinner-bootloader)
+   (package u-boot-banana-pi-m2-ultra)))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 79a3c5f8bc..50e55d7d00 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -423,6 +423,9 @@ also initializes the boards (RAM etc).")
 (define-public u-boot-odroid-c2
   (make-u-boot-package "odroid-c2" "aarch64-linux-gnu"))
 
+(define-public u-boot-banana-pi-m2-ultra
+  (make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf"))
+
 (define-public vboot-utils
   (package
     (name "vboot-utils")
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 1cc3db1160..c7bfdb2595 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -44,6 +44,7 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26)
   #:export (installation-os
+            banana-pi-m2-ultra-installation-os
             beaglebone-black-installation-os))
 
 ;;; Commentary:
@@ -399,6 +400,22 @@ You have been warned.  Thanks for being so brave.\x1b[0m
                        (tty "ttyO0"))))
                (operating-system-user-services installation-os)))))
 
+(define banana-pi-m2-ultra-installation-os
+  (operating-system
+    (inherit installation-os)
+    (bootloader (bootloader-configuration
+                 (bootloader u-boot-banana-pi-m2-ultra-bootloader)
+                 (target "/dev/mmcblk1"))) ; eMMC storage
+    (kernel linux-libre)
+    (services (append
+               (list (agetty-service
+                      (agetty-configuration
+                       (extra-options '("-L"))
+                       (baud-rate "115200")
+                       (term "vt100")
+                       (tty "ttyS0"))))
+               (operating-system-user-services installation-os)))))
+
 ;; Return the default os here so 'guix system' can consume it directly.
 installation-os