mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
gnu: bootloader: Add u-boot-am335x-evm-bootloader.
* gnu/bootloader/u-boot.scm (u-boot-am335x-evm-bootloader): New exported variable. Change-Id: I258f7b7b31e7b7597710b8ff30d7a5ed882e147c Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
This commit is contained in:
committed by
Vagrant Cascadian
parent
2f51ef95b4
commit
99b6b83230
@@ -36,6 +36,7 @@
|
||||
u-boot-a20-olinuxino-lime2-bootloader
|
||||
u-boot-a20-olinuxino-micro-bootloader
|
||||
u-boot-bananapi-m2-ultra-bootloader
|
||||
u-boot-am335x-evm-bootloader
|
||||
u-boot-beaglebone-black-bootloader
|
||||
u-boot-cubietruck-bootloader
|
||||
u-boot-firefly-rk3399-bootloader
|
||||
@@ -97,6 +98,48 @@ is BLOCK-SIZE * COUNT, or FILE size if COUNT is not given."
|
||||
(if bootloader
|
||||
(error "Failed to install U-Boot"))))
|
||||
|
||||
(define install-am335x-evm-u-boot
|
||||
(write-u-boot-image
|
||||
;; According to the "26.1.8.5.5 MMC/SD Read Sector Procedure in Raw Mode"
|
||||
;; section in the "AM335x and AMIC110 Sitara™ Processors Technical
|
||||
;; Reference Manual", we have offset, the bootrom tries to load code at the
|
||||
;; offsets 0x0, 0x20000 (128KB), 0x40000 (256KB) and 0x60000 (384KB).
|
||||
;;
|
||||
;; The MBR is 512 Bytes
|
||||
;; (https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout).
|
||||
;;
|
||||
;; At the time of writing, u-boot.img is 1.4 MiB, and it is at offset
|
||||
;; 0x60000 (384KB) as per CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR.
|
||||
;;
|
||||
;; We also need to align the first partition to make sure read/writes are
|
||||
;; properly aligned.
|
||||
;;
|
||||
;; Given these constraints, we chose the following partitioning:
|
||||
;;
|
||||
;; 0 512 Bytes 128 KiB
|
||||
;; | | (0x20000) 256 KiB
|
||||
;; | | / (0x40000) 384 KiB 4 MiB
|
||||
;; | | / | (0x60000) |
|
||||
;; | | / | | |
|
||||
;; v v / v v v
|
||||
;; +-------+ +--------------+---------------+----------------+
|
||||
;; | MBR | ... | First MLO | Second MLO | u-boot.img |
|
||||
;; +-------+ +--------------+---------------+----------------+
|
||||
;; <-512 B-> ... <-- 128 KiB --> <-- 128 KiB --> <-- 3712 KiB -->
|
||||
;;
|
||||
;; The rationale for that is as follows:
|
||||
;;
|
||||
;; - We add a second copy of the MLO at 256 KiB for improving reliability
|
||||
;; as the doc/board/ti/am335x_evm.rst documentation in u-boot advise us
|
||||
;; to do that, and also because the space there isn't used.
|
||||
;;
|
||||
;; - All can fit into 2MiB (u-boot.img can grow up to 1664 KiB), but we
|
||||
;; want a bit more space in case u-boot.img grows over time, so we allow
|
||||
;; u-boot to grow until the 4 MiB offset.
|
||||
'(("MLO" 256 256) ;; First MLO
|
||||
("MLO" 256 512) ;; Second MLO
|
||||
("u-boot.img" 7424 768)) 512))
|
||||
|
||||
(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
|
||||
@@ -158,6 +201,33 @@ is BLOCK-SIZE * COUNT, or FILE size if COUNT is not given."
|
||||
(installer #f)
|
||||
(disk-image-installer install-u-boot)))
|
||||
|
||||
(define u-boot-am335x-evm-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
;; This bootloader supports the following computers:
|
||||
;; - SanCloud BeagleBone Enhanced
|
||||
;; - SanCloud BeagleBone Enhanced Extended WiFi
|
||||
;; - SanCloud BeagleBone Enhanced Lite
|
||||
;; - Seeed Studio BeagleBone Green Eco
|
||||
;; - TI AM3359 ICE-V2
|
||||
;; - TI AM335x BeagleBone
|
||||
;; - TI AM335x BeagleBone Black
|
||||
;; - TI AM335x BeagleBone Green
|
||||
;; - TI AM335x EVM
|
||||
;; - TI AM335x EVM-SK
|
||||
;; - TI AM335x PocketBeagle
|
||||
;;
|
||||
;; This list was made by retrieving the list of Devicetrees used in
|
||||
;; configs/am335x_evm_defconfig in u-boot source code. Once we have that we
|
||||
;; can look at each Devicetree in arch/arm/boot/dts/ti/omap/ inside Linux,
|
||||
;; and in each file, look at the model property to find the name of the
|
||||
;; computers that this image supports.
|
||||
(package u-boot-am335x-evm)
|
||||
;; At the time of writing, our u-boot.img is 1.4 MiB. This is why we can't
|
||||
;; reuse install-beaglebone-black-u-boot. And having the same image being
|
||||
;; able to boot on multiple computers is useful.
|
||||
(disk-image-installer install-am335x-evm-u-boot)))
|
||||
|
||||
(define u-boot-beaglebone-black-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
|
||||
Reference in New Issue
Block a user