unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: m.othacehe@gmail.com
To: 29409@debbugs.gnu.org
Subject: [bug#29409] [PATCH v2 4/4] system: Add BeagleBone Black installer.
Date: Wed, 13 Dec 2017 12:02:17 +0100	[thread overview]
Message-ID: <1513162937-13145-4-git-send-email-m.othacehe@gmail.com> (raw)
In-Reply-To: <1513162937-13145-1-git-send-email-m.othacehe@gmail.com>

From: Mathieu Othacehe <m.othacehe@gmail.com>

* gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): New exported
  bootloader.
* gnu/system/install.scm (beaglebone-black-installation-os): New exported variable.
---
 gnu/bootloader/u-boot.scm | 25 ++++++++++++++++++++++++-
 gnu/system/install.scm    | 28 +++++++++++++++++++++++++---
 2 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm
index 963b0d7..397eb81 100644
--- a/gnu/bootloader/u-boot.scm
+++ b/gnu/bootloader/u-boot.scm
@@ -21,18 +21,35 @@
   #:use-module (gnu bootloader extlinux)
   #:use-module (gnu bootloader)
   #:use-module (gnu system)
+  #:use-module (gnu build bootloader)
   #:use-module (gnu packages bootloaders)
   #:use-module (guix gexp)
   #:use-module (guix monads)
   #:use-module (guix records)
   #:use-module (guix utils)
-  #:export (u-boot-bootloader))
+  #:export (u-boot-bootloader
+            u-boot-beaglebone-black-bootloader))
 
 (define install-u-boot
   #~(lambda (bootloader device mount-point)
       (if bootloader
         (error "Failed to install U-Boot"))))
 
+(define install-beaglebone-black-u-boot
+  ;; http://wiki.beyondlogic.org/index.php?title=BeagleBoneBlack_Upgrading_uBoot
+  ;; This first stage bootloader called MLO (U-Boot SPL) is expected at
+  ;; 0x20000 by BBB ROM code. The second stage bootloader will be loaded by
+  ;; the MLO and is expected at 0x60000.  Write both first stage ("MLO") and
+  ;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to the
+  ;; specified DEVICE.
+  #~(lambda (bootloader device mount-point)
+      (let ((mlo (string-append bootloader "/libexec/MLO"))
+            (u-boot (string-append bootloader "/libexec/u-boot.img")))
+        (write-file-on-device mlo (* 256 512)
+                              device (* 256 512))
+        (write-file-on-device u-boot (* 1024 512)
+                              device (* 768 512)))))
+
 \f
 
 ;;;
@@ -45,3 +62,9 @@
    (name 'u-boot)
    (package #f)
    (installer install-u-boot)))
+
+(define u-boot-beaglebone-black-bootloader
+  (bootloader
+   (inherit u-boot-bootloader)
+   (package u-boot-beagle-bone-black)
+   (installer install-beaglebone-black-u-boot)))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index c2f73f7..d98becd 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -22,6 +22,7 @@
 
 (define-module (gnu system install)
   #:use-module (gnu)
+  #:use-module (gnu bootloader u-boot)
   #:use-module (guix gexp)
   #:use-module (guix store)
   #:use-module (guix monads)
@@ -42,7 +43,8 @@
   #:use-module (gnu packages nvi)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26)
-  #:export (installation-os))
+  #:export (installation-os
+            beaglebone-black-installation-os))
 
 ;;; Commentary:
 ;;;
@@ -372,7 +374,27 @@ You have been warned.  Thanks for being so brave.\x1b[0m
                      nvi                          ;:wq!
                      %base-packages))))
 
-;; Return it here so 'guix system' can consume it directly.
-installation-os
+(define beaglebone-black-installation-os
+  (operating-system
+    (inherit installation-os)
+    (bootloader (bootloader-configuration
+                 (bootloader u-boot-beaglebone-black-bootloader)
+                 (target "/dev/sda")))
+    (kernel linux-libre)
+    (initrd (lambda (fs . rest)
+              (apply base-initrd fs
+                     ;; This module is required to mount the sd card.
+                     #:extra-modules (list "omap_hsmmc")
+                     rest)))
+    (services (append
+               ;; mingetty does not work on serial lines.
+               ;; Use agetty with board-specific serial parameters.
+               (list (agetty-service
+                      (agetty-configuration
+                       (extra-options '("-L"))
+                       (baud-rate "115200")
+                       (term "vt100")
+                       (tty "ttyO0"))))
+               (operating-system-user-services installation-os)))))
 
 ;;; install.scm ends here
-- 
2.7.4

  parent reply	other threads:[~2017-12-13 11:03 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23  9:45 [bug#29409] GuixSD ARM port Mathieu Othacehe
2017-11-23  9:49 ` [bug#29409] [PATCH] linux-libre: Adapt some arm options to match intel conf Mathieu Othacehe
2017-11-23 15:43   ` Ludovic Courtès
2017-11-23 19:09     ` bug#29409: " Mathieu Othacehe
2017-11-25  8:35   ` [bug#29409] " Danny Milosavljevic
2017-11-25 17:22     ` Mathieu Othacehe
2017-11-26  8:16       ` Danny Milosavljevic
2017-11-24 16:49 ` [bug#29409] [PATCH] vm: Use os-defined initrd intead of base-initrd Mathieu Othacehe
2017-11-24 21:36   ` Ludovic Courtès
2017-11-26 12:49     ` Mathieu Othacehe
2017-11-28  9:22 ` [bug#29409] [PATCH] gnu: dtc: Fix build on 32 bits platforms m.othacehe
2017-11-28  9:28 ` [bug#29409] [PATCH] gnu: grub: Disable tests on ARM platforms m.othacehe
2017-11-28 21:00   ` Leo Famulari
2017-11-29 14:03     ` Mathieu Othacehe
2017-11-29 14:20 ` [bug#29409] [PATCH] utils: Add target-arm? procedure m.othacehe
2017-11-29 14:20   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 20:14     ` Danny Milosavljevic
2017-12-02 12:46       ` Mathieu Othacehe
2017-12-08  9:24       ` Ludovic Courtès
2017-11-30 17:09   ` [bug#29409] [PATCH] utils: Add target-arm? procedure Ludovic Courtès
2017-12-01  9:21     ` Mathieu Othacehe
2017-11-29 17:34 ` [bug#29409] [PATCH] tests: install: Increase extlinux install partition size m.othacehe
2017-11-30 17:12   ` Ludovic Courtès
2017-12-01 13:02     ` Mathieu Othacehe
2017-12-01 14:57       ` Mathieu Othacehe
2017-12-01 16:07         ` Ludovic Courtès
2017-12-02 12:02           ` Mathieu Othacehe
2017-12-02 13:16             ` Mathieu Othacehe
2017-12-02 23:34             ` Ludovic Courtès
2017-12-03 19:31         ` Ludovic Courtès
2017-12-03 21:19           ` Mathieu Othacehe
2017-12-04  8:37             ` Ludovic Courtès
2017-12-04 14:29               ` Mathieu Othacehe
2017-12-04 14:30     ` Mathieu Othacehe
2017-11-30 10:47 ` [bug#29409] [PATCH] build: utils: Introduce dd m.othacehe
2017-12-01 12:47   ` Ludovic Courtès
2017-12-01 13:03     ` Mathieu Othacehe
2017-12-04 14:31     ` Mathieu Othacehe
2017-12-04 14:43       ` Ludovic Courtès
2017-12-04 15:53         ` Mathieu Othacehe
2017-12-04 17:17           ` Ludovic Courtès
2017-12-04 17:27             ` Mathieu Othacehe
2017-12-01 10:38 ` [bug#29409] [PATCH] utils: Add target-arm32? procedure m.othacehe
2017-12-01 10:38   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 11:01     ` Ludovic Courtès
2017-12-01 12:58       ` Mathieu Othacehe
2017-12-01 10:58   ` [bug#29409] [PATCH] utils: Add target-arm32? procedure Ludovic Courtès
2017-12-04 16:52 ` [bug#29409] [PATCH] build: vm: Use netdev qemu parameter m.othacehe
2017-12-04 18:19   ` Leo Famulari
2017-12-05  8:58     ` Mathieu Othacehe
2017-12-04 17:35 ` [bug#29409] [PATCH] build: vm: Use qemu drive device parameter m.othacehe
2017-12-08  9:38   ` Ludovic Courtès
2017-12-08 10:22     ` Mathieu Othacehe
2017-12-06 12:59 ` [bug#29409] [PATCH 0/4] ARM port m.othacehe
2017-12-06 12:59   ` [bug#29409] [PATCH 1/4] build: vm: Use netdev qemu parameter m.othacehe
2017-12-11 16:32     ` Ludovic Courtès
2017-12-11 17:36       ` Mathieu Othacehe
2017-12-12  9:00         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 2/4] build: vm: Use qemu drive device parameter m.othacehe
2017-12-11 16:33     ` Ludovic Courtès
2017-12-11 16:34     ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 3/4] build: vm: Adapt qemu command to ARM m.othacehe
2017-12-11 16:38     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-12  9:03         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 4/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-11 16:40     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-07  8:52 ` [bug#29409] [PATCH] system: Add BeagleBone Black installer m.othacehe
2017-12-11 16:47   ` Ludovic Courtès
2017-12-11 17:32     ` ng0
2017-12-11 17:57     ` Mathieu Othacehe
2017-12-13 11:02 ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM m.othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 2/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-15 10:34     ` Ludovic Courtès
2017-12-15 10:53       ` Mathieu Othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 3/4] scripts: system: Add --expression option m.othacehe
2017-12-15 10:39     ` Ludovic Courtès
2017-12-15 11:18       ` Mathieu Othacehe
2017-12-15 14:03         ` Ludovic Courtès
2017-12-15 15:38           ` Mathieu Othacehe
2017-12-13 11:02   ` m.othacehe [this message]
2017-12-15 10:40     ` [bug#29409] [PATCH v2 4/4] system: Add BeagleBone Black installer Ludovic Courtès
2017-12-15 10:33   ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM Ludovic Courtès
2017-12-15 10:45     ` Mathieu Othacehe
2017-12-18 13:56 ` [bug#29409] [PATCH] system: examples: Add a template for BeagleBone Black m.othacehe
2017-12-18 14:22   ` Ludovic Courtès
2017-12-18 14:29     ` Mathieu Othacehe
2017-12-20 19:15 ` [bug#29409] Remove hugetlb control group on ARM32 Mathieu Othacehe
2017-12-21  1:16   ` Tobias Geerinckx-Rice
2017-12-21 10:07     ` Ludovic Courtès
2017-12-21  8:57   ` Danny Milosavljevic
2017-12-21 15:52     ` Ludovic Courtès
2017-12-22  7:54       ` Mathieu Othacehe
2017-12-22 10:50         ` Ludovic Courtès
2017-12-22 14:28           ` Mathieu Othacehe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1513162937-13145-4-git-send-email-m.othacehe@gmail.com \
    --to=m.othacehe@gmail.com \
    --cc=29409@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).