mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
gnu: bootloader: u-boot: Rewrite completely.
* gnu/bootloader/u-boot.scm (u-boot-bootloader): Delete variable. (make-install-u-boot): Add procedure. (define-u-bootloader): Add macro. (u-boot-*-bootloader): Use define-u-bootloader. (install-*u-boot): Remove variables. * gnu/system/install.scm (os-with-u-boot): Remove procedure. * doc/guix.texi (System Installation)[Building the Installation Image]: Use beaglebone as the example. Change-Id: I3654d160f7306bb45a78b82ea6b249ff4281f739
This commit is contained in:
parent
a0a99c446b
commit
e12dd189e8
3 changed files with 155 additions and 309 deletions
|
@ -2666,11 +2666,13 @@ If you build a disk image and the bootloader is not available otherwise
|
|||
includes the bootloader, specifically:
|
||||
|
||||
@example
|
||||
guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")'
|
||||
guix system image --system=armhf-linux -e '(@ (gnu system install) beaglebone-black-installation-os)'
|
||||
@end example
|
||||
|
||||
@code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid
|
||||
board, a list of possible boards will be printed.
|
||||
@code{beaglebone-black} is the name of the board. Similar
|
||||
@code{installation-os} variables exist for most other supported boards.
|
||||
Otherwise, you can use @code{embedded-installation-os}, passing it a u-boot
|
||||
bootloader and the desired console tty.
|
||||
|
||||
|
||||
@c *********************************************************************
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2023-2024 Herman Rimm <herman@rimm.ee>
|
||||
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
|
||||
;;; Copyright © 2024 Lilah Tascheter <lilah@lunabee.space>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,12 +25,11 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu bootloader u-boot)
|
||||
#:use-module (gnu bootloader extlinux)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu bootloader extlinux)
|
||||
#:use-module (gnu packages bootloaders)
|
||||
#:use-module (guix gexp)
|
||||
#:export (u-boot-bootloader
|
||||
u-boot-a20-olinuxino-lime-bootloader
|
||||
#:export (u-boot-a20-olinuxino-lime-bootloader
|
||||
u-boot-a20-olinuxino-lime2-bootloader
|
||||
u-boot-a20-olinuxino-micro-bootloader
|
||||
u-boot-bananapi-m2-ultra-bootloader
|
||||
|
@ -55,321 +55,179 @@ (define-module (gnu bootloader u-boot)
|
|||
u-boot-ts7970-q-2g-1000mhz-c-bootloader
|
||||
u-boot-wandboard-bootloader))
|
||||
|
||||
(define install-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(if bootloader
|
||||
(error "Failed to install U-Boot"))))
|
||||
(define (make-install-u-boot firmware installers)
|
||||
(lambda* (#:key bootloader-config #:allow-other-keys . args)
|
||||
(with-targets (bootloader-configuration-targets bootloader-config)
|
||||
('extlinux (apply install-extlinux-config args))
|
||||
(('install => (path :path)) #~(let ((path #$path)) #$firmware))
|
||||
(('disk => (disk :device)) #~(let ((disk #$disk)) #f #$@installers)))))
|
||||
|
||||
(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 root-index image)
|
||||
(let ((mlo (string-append bootloader "/libexec/MLO"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.img")))
|
||||
(write-file-on-device mlo (* 256 512)
|
||||
image (* 256 512))
|
||||
(write-file-on-device u-boot (* 1024 512)
|
||||
image (* 768 512)))))
|
||||
|
||||
(define install-allwinner-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((u-boot (string-append bootloader
|
||||
"/libexec/u-boot-sunxi-with-spl.bin")))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 8 1024)))))
|
||||
|
||||
(define install-allwinner64-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/u-boot-sunxi-with-spl.bin"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot-sunxi-with-spl.fit.itb")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 8 1024))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 40 1024)))))
|
||||
|
||||
(define install-imx-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/SPL"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.img")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 1 1024))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 69 1024)))))
|
||||
|
||||
(define install-nanopi-r4s-rk3399-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/idbloader.img"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-orangepi-r1-plus-lts-rk3328-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 idb (stat:size (stat idb))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-puma-rk3399-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/idbloader.img"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 512 512)))))
|
||||
|
||||
(define install-firefly-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 idb (stat:size (stat idb))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-rock64-rk3328-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 idb (stat:size (stat idb))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-rockpro64-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 idb (stat:size (stat idb))
|
||||
image (* 64 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 16384 512)))))
|
||||
|
||||
(define install-pinebook-pro-rk3399-u-boot install-rockpro64-rk3399-u-boot)
|
||||
|
||||
(define install-u-boot-ts7970-q-2g-1000mhz-c-u-boot
|
||||
#~(lambda (bootloader device mount-point)
|
||||
(let ((u-boot.imx (string-append bootloader "/libexec/u-boot.imx"))
|
||||
(install-dir (string-append mount-point "/boot")))
|
||||
(install-file u-boot.imx install-dir))))
|
||||
|
||||
(define install-sifive-unmatched-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append bootloader "/libexec/spl/u-boot-spl.bin"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 34 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 2082 512)))))
|
||||
|
||||
(define install-starfive-visionfive2-u-boot
|
||||
#~(lambda (bootloader root-index image)
|
||||
(let ((spl (string-append
|
||||
bootloader "/libexec/spl/u-boot-spl.bin.normal.out"))
|
||||
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
|
||||
(write-file-on-device spl (stat:size (stat spl))
|
||||
image (* 34 512))
|
||||
(write-file-on-device u-boot (stat:size (stat u-boot))
|
||||
image (* 2082 512)))))
|
||||
|
||||
(define install-starfive-visionfive2-uEnv.txt
|
||||
#~(lambda (bootloader device mount-point)
|
||||
(mkdir-p (string-append mount-point "/boot"))
|
||||
(call-with-output-file (string-append mount-point "/boot/uEnv.txt")
|
||||
(lambda (port)
|
||||
(format port
|
||||
;; if board SPI use vender's u-boot, will find
|
||||
;; ""starfive/starfive_visionfive2.dtb"", We cannot guarantee
|
||||
;; that users will update this u-boot, so set it.
|
||||
"fdtfile=starfive/jh7110-starfive-visionfive-2-v1.3b.dtb~%")))))
|
||||
|
||||
(define install-qemu-riscv64-u-boot
|
||||
#~(lambda (bootloader device mount-point)
|
||||
(let ((u-boot.bin (string-append bootloader "/libexec/u-boot.bin"))
|
||||
(install-dir (string-append mount-point "/boot")))
|
||||
(install-file u-boot.bin install-dir))))
|
||||
(define-syntax-rule (define-u-bootloader def-name package firmware
|
||||
(file size doffset) ...)
|
||||
"Defines a U-Boot installer DEF-NAME, using u-boot PACKAGE. Installs
|
||||
each given FILE of SIZE (or #f to autodetect) to the targeted disk at
|
||||
OFFSET. FIRMWARE is ran on the U-Boot firmware directory to install
|
||||
supporting files, with the directory path as the local variable 'path'."
|
||||
(define def-name
|
||||
(bootloader
|
||||
(name 'u-boot)
|
||||
(default-targets (list (bootloader-target
|
||||
(type 'install)
|
||||
(offset 'root)
|
||||
(path "boot"))
|
||||
(bootloader-target
|
||||
(type 'extlinux)
|
||||
(offset 'install)
|
||||
(path "extlinux"))))
|
||||
(installer
|
||||
(make-install-u-boot
|
||||
firmware
|
||||
(list #~(let ((fw #$(file-append package "/libexec/" file)))
|
||||
(write-file-on-device fw
|
||||
#$(or size #~(stat:size (stat fw)))
|
||||
disk #$doffset)) ...))))))
|
||||
|
||||
|
||||
|
||||
;;;
|
||||
;;; Bootloader definitions.
|
||||
;;;
|
||||
|
||||
(define u-boot-bootloader
|
||||
(bootloader
|
||||
(inherit extlinux-bootloader)
|
||||
(name 'u-boot)
|
||||
(package #f)
|
||||
(installer #f)
|
||||
(disk-image-installer install-u-boot)))
|
||||
(define-u-bootloader u-boot-beaglebone-black-bootloader
|
||||
u-boot-am335x-boneblack #f
|
||||
;; 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 to the target.
|
||||
("MLO" (* 256 512) (* 256 512))
|
||||
("u-boot.img" (* 1024 512) (* 768 512)))
|
||||
|
||||
(define u-boot-beaglebone-black-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-am335x-boneblack)
|
||||
(disk-image-installer install-beaglebone-black-u-boot)))
|
||||
(define-u-bootloader u-boot-sifive-unmatched-bootloader
|
||||
u-boot-sifive-unmatched #f
|
||||
("spl/u-boot-spl.bin" #f (* 34 512))
|
||||
("u-boot.itb" #f (* 2082 512)))
|
||||
|
||||
(define u-boot-allwinner-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(disk-image-installer install-allwinner-u-boot)))
|
||||
(define-u-bootloader u-boot-starfive-visionfive2-bootloader
|
||||
u-boot-starfive-visionfive2
|
||||
#~(begin (mkdir-p path)
|
||||
(call-with-output-file (string-append path "/uEnv.txt")
|
||||
(lambda (port)
|
||||
(format port
|
||||
;; if board SPI use vender's u-boot, will find
|
||||
;; ""starfive/starfive_visionfive2.dtb"", We cannot guarantee
|
||||
;; that users will update this u-boot, so set it.
|
||||
"fdtfile=starfive/jh7110-starfive-visionfive-2-v1.3b.dtb~%"))))
|
||||
("spl/u-boot-spl.bin.normal.out" #f (* 34 512))
|
||||
("u-boot.itb" #f (* 2082 512)))
|
||||
|
||||
(define u-boot-allwinner64-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(disk-image-installer install-allwinner64-u-boot)))
|
||||
|
||||
;;;
|
||||
;;; Allwinner bootloader definitions.
|
||||
;;;
|
||||
(define-syntax-rule (define-u-bootloader-allwinner def-name package)
|
||||
(define-u-bootloader def-name package #f
|
||||
("u-boot-sunxi-with-spl.bin" #f (* 8 1024))))
|
||||
|
||||
(define u-boot-imx-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(disk-image-installer install-imx-u-boot)))
|
||||
|
||||
(define u-boot-nintendo-nes-classic-edition-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-nintendo-nes-classic-edition)))
|
||||
(define-u-bootloader-allwinner u-boot-nintendo-nes-classic-edition-bootloader
|
||||
u-boot-nintendo-nes-classic-edition)
|
||||
|
||||
(define u-boot-a20-olinuxino-lime-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-a20-olinuxino-lime)))
|
||||
(define-u-bootloader-allwinner u-boot-a20-olinuxino-lime-bootloader
|
||||
u-boot-a20-olinuxino-lime)
|
||||
|
||||
(define u-boot-a20-olinuxino-lime2-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-a20-olinuxino-lime2)))
|
||||
(define-u-bootloader-allwinner u-boot-a20-olinuxino-lime2-bootloader
|
||||
u-boot-a20-olinuxino-lime2)
|
||||
|
||||
(define u-boot-a20-olinuxino-micro-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-a20-olinuxino-micro)))
|
||||
(define-u-bootloader-allwinner u-boot-a20-olinuxino-micro-bootloader
|
||||
u-boot-a20-olinuxino-micro)
|
||||
|
||||
(define u-boot-bananapi-m2-ultra-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-bananapi-m2-ultra)))
|
||||
(define-u-bootloader-allwinner u-boot-bananapi-m2-ultra-bootloader
|
||||
u-boot-bananapi-m2-ultra)
|
||||
|
||||
(define u-boot-cubietruck-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-cubietruck)))
|
||||
(define-u-bootloader-allwinner u-boot-cubietruck-bootloader u-boot-cubietruck)
|
||||
|
||||
(define u-boot-firefly-rk3399-bootloader
|
||||
(define-u-bootloader-allwinner u-boot-pine64-lts-bootloader u-boot-pine64-lts)
|
||||
|
||||
(define-u-bootloader-allwinner u-boot-orangepi-zero2w-bootloader
|
||||
u-boot-orangepi-zero2w)
|
||||
|
||||
|
||||
;;;
|
||||
;;; Allwinner64 bootloader definitions.
|
||||
;;;
|
||||
(define-syntax-rule (define-u-bootloader-allwinner64 def-name package)
|
||||
(define-u-bootloader def-name package #f
|
||||
("u-boot-sunxi-with-spl.bin" #f (* 8 1024))
|
||||
("u-boot-sunxi-with-spl.fit.itb" #f (* 40 1024))))
|
||||
|
||||
(define-u-bootloader-allwinner64 u-boot-pine64-plus-bootloader
|
||||
u-boot-pine64-plus)
|
||||
|
||||
(define-u-bootloader-allwinner64 u-boot-pinebook-bootloader u-boot-pinebook)
|
||||
|
||||
|
||||
;;;
|
||||
;;; IMX bootloader definitions.
|
||||
;;;
|
||||
(define-syntax-rule (define-u-bootloader-imx def-name package)
|
||||
(define-u-bootloader def-name package #f
|
||||
("SPL" #f (* 8 1024))
|
||||
("u-boot.img" #f (* 40 1024))))
|
||||
|
||||
|
||||
(define-u-bootloader-imx u-boot-mx6cuboxi-bootloader u-boot-mx6cuboxi)
|
||||
|
||||
(define-u-bootloader-imx u-boot-wandboard-bootloader u-boot-wandboard)
|
||||
|
||||
(define-u-bootloader-imx u-boot-novena-bootloader u-boot-novena)
|
||||
|
||||
|
||||
;;;
|
||||
;;; Rockchip bootloader definitions.
|
||||
;;;
|
||||
(define-syntax-rule (define-u-bootloader-rockchip def-name package)
|
||||
;; SD and eMMC use the same format
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-firefly-rk3399)
|
||||
(disk-image-installer install-firefly-rk3399-u-boot)))
|
||||
(define-u-bootloader def-name package #f
|
||||
("idbloader.img" #f (* 64 512))
|
||||
("u-boot.itb" #f (* 16384 512))))
|
||||
|
||||
(define u-boot-mx6cuboxi-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-imx-bootloader)
|
||||
(package u-boot-mx6cuboxi)))
|
||||
(define-u-bootloader-rockchip u-boot-firefly-rk3399-bootloader
|
||||
u-boot-firefly-rk3399)
|
||||
|
||||
(define u-boot-wandboard-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-imx-bootloader)
|
||||
(package u-boot-wandboard)))
|
||||
(define-u-bootloader-rockchip u-boot-nanopi-r4s-rk3399-bootloader
|
||||
u-boot-nanopi-r4s-rk3399)
|
||||
|
||||
(define u-boot-novena-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-imx-bootloader)
|
||||
(package u-boot-novena)))
|
||||
(define-u-bootloader-rockchip u-boot-orangepi-r1-plus-lts-rk3328-bootloader
|
||||
u-boot-orangepi-r1-plus-lts-rk3328)
|
||||
|
||||
(define u-boot-nanopi-r4s-rk3399-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-nanopi-r4s-rk3399)
|
||||
(disk-image-installer install-nanopi-r4s-rk3399-u-boot)))
|
||||
(define-u-bootloader-rockchip u-boot-rock64-rk3328-bootloader
|
||||
u-boot-rock64-rk3328)
|
||||
|
||||
(define u-boot-orangepi-r1-plus-lts-rk3328-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-orangepi-r1-plus-lts-rk3328)
|
||||
(disk-image-installer install-orangepi-r1-plus-lts-rk3328-u-boot)))
|
||||
(define-u-bootloader-rockchip u-boot-rockpro64-rk3399-bootloader
|
||||
u-boot-rockpro64-rk3399)
|
||||
|
||||
(define u-boot-orangepi-zero2w-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-orangepi-zero2w)))
|
||||
(define-u-bootloader-rockchip u-boot-pinebook-pro-rk3399-bootloader
|
||||
u-boot-pinebook-pro-rk3399)
|
||||
|
||||
(define u-boot-pine64-plus-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner64-bootloader)
|
||||
(package u-boot-pine64-plus)))
|
||||
(define-u-bootloader u-boot-puma-rk3399-bootloader u-boot-puma-rk3399 #f
|
||||
("idbloader.img" #f (* 64 512))
|
||||
("u-boot.itb" #f (* 512 512)))
|
||||
|
||||
(define u-boot-pine64-lts-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner-bootloader)
|
||||
(package u-boot-pine64-lts)))
|
||||
|
||||
;;;
|
||||
;;; Copy-only bootloader definitions.
|
||||
;;;
|
||||
|
||||
(define u-boot-pinebook-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-allwinner64-bootloader)
|
||||
(package u-boot-pinebook)))
|
||||
;; These bootloaders don't really need to be installed, as they are read from
|
||||
;; an SPI memory chip or directly from the FS, not the disk.
|
||||
(define-syntax-rule (define-u-bootloader-copy def-name package file)
|
||||
(define-u-bootloader def-name package
|
||||
#~(install-file #$(file-append package "/libexec/" file) path)))
|
||||
|
||||
(define u-boot-puma-rk3399-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-puma-rk3399)
|
||||
(disk-image-installer install-puma-rk3399-u-boot)))
|
||||
;; user should manually install this to SPI flash
|
||||
;; TODO: write directly to SPI flash? unless wear issues are a problem.
|
||||
(define-u-bootloader-copy u-boot-ts7970-q-2g-1000mhz-c-bootloader
|
||||
u-boot-ts7970-q-2g-1000mhz-c "u-boot.imx")
|
||||
|
||||
(define u-boot-rock64-rk3328-bootloader
|
||||
;; SD and eMMC use the same format
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-rock64-rk3328)
|
||||
(disk-image-installer install-rock64-rk3328-u-boot)))
|
||||
|
||||
(define u-boot-rockpro64-rk3399-bootloader
|
||||
;; SD and eMMC use the same format
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-rockpro64-rk3399)
|
||||
(disk-image-installer install-rockpro64-rk3399-u-boot)))
|
||||
|
||||
(define u-boot-pinebook-pro-rk3399-bootloader
|
||||
;; SD and eMMC use the same format
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-pinebook-pro-rk3399)
|
||||
(disk-image-installer install-pinebook-pro-rk3399-u-boot)))
|
||||
|
||||
(define u-boot-ts7970-q-2g-1000mhz-c-bootloader
|
||||
;; This bootloader doesn't really need to be installed, as it is read from
|
||||
;; an SPI memory chip, not the SD card. It is copied to /boot/u-boot.imx
|
||||
;; for convenience and should be manually flashed at the U-Boot prompt.
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-ts7970-q-2g-1000mhz-c)
|
||||
(installer install-u-boot-ts7970-q-2g-1000mhz-c-u-boot)
|
||||
(disk-image-installer #f)))
|
||||
|
||||
(define u-boot-sifive-unmatched-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-sifive-unmatched)
|
||||
(disk-image-installer install-sifive-unmatched-u-boot)))
|
||||
|
||||
(define u-boot-starfive-visionfive2-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-starfive-visionfive2)
|
||||
(installer install-starfive-visionfive2-uEnv.txt)
|
||||
(disk-image-installer install-starfive-visionfive2-u-boot)))
|
||||
|
||||
(define u-boot-qemu-riscv64-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
(package u-boot-qemu-riscv64)
|
||||
(installer install-qemu-riscv64-u-boot)
|
||||
(disk-image-installer #f)))
|
||||
(define-u-bootloader-copy u-boot-qemu-riscv64-bootloader
|
||||
u-boot-qemu-riscv64 "u-boot.bin")
|
||||
|
|
|
@ -78,8 +78,7 @@ (define-module (gnu system install)
|
|||
rock64-installation-os
|
||||
rockpro64-installation-os
|
||||
rk3399-puma-installation-os
|
||||
wandboard-installation-os
|
||||
os-with-u-boot))
|
||||
wandboard-installation-os))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -555,19 +554,6 @@ (define installation-os
|
|||
%installer-disk-utilities
|
||||
%base-packages))))
|
||||
|
||||
(define* (os-with-u-boot os board #:key (bootloader-target "/dev/mmcblk0")
|
||||
(triplet "arm-linux-gnueabihf"))
|
||||
"Given OS, amend it with the u-boot bootloader for BOARD,
|
||||
installed to BOOTLOADER-TARGET (a drive), compiled for TRIPLET.
|
||||
|
||||
If you want a serial console, make sure to specify one in your
|
||||
operating-system's kernel-arguments (\"console=ttyS0\" or similar)."
|
||||
(operating-system (inherit os)
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader (bootloader (inherit u-boot-bootloader)
|
||||
(package (make-u-boot-package board triplet))))
|
||||
(targets (list bootloader-target))))))
|
||||
|
||||
(define* (embedded-installation-os bootloader #:optional
|
||||
(tty "ttyS0")
|
||||
(extra-modules '())
|
||||
|
|
Loading…
Reference in a new issue