summary refs log tree commit diff
path: root/gnu/packages/bootloaders.scm
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@debian.org>2019-02-06 14:35:54 -0800
committerDanny Milosavljevic <dannym@scratchpost.org>2019-02-11 10:59:23 +0100
commit6e2bad000fb2d509be3fd557313dbd00d8a02a61 (patch)
tree81ad5ae012a00129f6b48347ac5f949832a23e0d /gnu/packages/bootloaders.scm
parent8d22f7e31f6fc766af2db845bcd8ea975ba0da6c (diff)
downloadguix-6e2bad000fb2d509be3fd557313dbd00d8a02a61.tar.gz
gnu: u-boot-novena: Allow booting from raw device offset.
* gnu/packages/bootloaders.scm (u-boot-novena): Disable loading u-boot.img
from a partition.
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r--gnu/packages/bootloaders.scm20
1 files changed, 19 insertions, 1 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 5bd784f73c..a566001b07 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -624,7 +624,25 @@ board-independent tools.")))
   (make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf"))
 
 (define-public u-boot-novena
-  (make-u-boot-package "novena" "arm-linux-gnueabihf"))
+  (let ((base (make-u-boot-package "novena" "arm-linux-gnueabihf")))
+    (package
+      (inherit base)
+      (description "U-Boot is a bootloader used mostly for ARM boards. It
+also initializes the boards (RAM etc).
+
+This U-Boot is built for Novena.  Be advised that this version, contrary
+to Novena upstream, does not load u-boot.img from the first patition.")
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'patch-novena-defconfig
+               ;; Patch configuration to disable loading u-boot.img from FAT partition,
+               ;; allowing it to be installed at a device offset.
+               (lambda _
+                 (substitute* "configs/novena_defconfig"
+                   (("CONFIG_SPL_FAT_SUPPORT=y") "# CONFIG_SPL_FAT_SUPPORT is not set"))
+                 #t)))))))))
 
 (define-public u-boot-cubieboard
   (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))