Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#!/bin/sh
#
# $FreeBSD$
#

EMBEDDED_TARGET_ARCH="armv6"
EMBEDDED_TARGET="arm"
EMBEDDEDBUILD=1
EMBEDDEDPORTS="sysutils/u-boot-rpi sysutils/rpi-firmware"
FAT_SIZE="41m"
FAT_TYPE="16"
IMAGE_SIZE="1G"
KERNEL="RPI-B"
MD_ARGS="-x 63 -y 255"
NODOC=1
PART_SCHEME="MBR"
WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x2000000"

arm_install_uboot() {
	UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi"
	RPI_FIRMWARE_DIR="/usr/local/share/rpi-firmware"
	UBOOT_FILES="u-boot.bin"
	RPI_FIRMWARE_FILES="bootcode.bin config.txt \
		fixup.dat fixup_cd.dat fixup_db.dat fixup_x.dat \
		start.elf start_cd.elf start_db.elf start_x.elf"
	FATMOUNT="${DESTDIR%${KERNEL}}/fat"
	UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
	for _UF in ${UBOOT_FILES}; do
		chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
			${FATMOUNT}/${_UF}
	done
	for _UF in ${RPI_FIRMWARE_FILES}; do
		chroot ${CHROOTDIR} cp -p ${RPI_FIRMWARE_DIR}/${_UF} \
			${FATMOUNT}/${_UF}
	done
	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
		${FATMOUNT}/ubldr.bin
	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi.dtb \
		${FATMOUNT}/rpi.dtb
	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
	sync
	umount_loop ${CHROOTDIR}/${FATMOUNT}
	umount_loop ${CHROOTDIR}/${UFSMOUNT}
	chroot ${CHROOTDIR} rmdir ${FATMOUNT}
	chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
	
	return 0
}