From 30aeb846d7516d534aebeee76be4a920195e8d50 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 19 Jan 2018 00:25:13 +0100 Subject: [PATCH] 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. --- gnu/bootloader/u-boot.scm | 18 ++++++++++++++++++ gnu/packages/bootloaders.scm | 3 +++ gnu/system/install.scm | 17 +++++++++++++++++ 3 files changed, 38 insertions(+) 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