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

EMBEDDED_TARGET_ARCH="armv7"
EMBEDDED_TARGET="arm"
EMBEDDEDBUILD=1
EMBEDDEDPORTS="sysutils/u-boot-beaglebone sysutils/u-boot-rpi2 sysutils/rpi-firmware"
FAT_SIZE="50m -b 1m"
FAT_TYPE="16"
IMAGE_SIZE="5120M"
KERNEL="GENERIC"
MD_ARGS="-x 63 -y 255"
BBB_UBOOT_DIR="/usr/local/share/u-boot/u-boot-beaglebone"
RPI_UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi2"
RPI_FIRMWARE_DIR="/usr/local/share/rpi-firmware"
RPI_OL_DIR="${RPI_FIRMWARE_DIR}/overlays"
OVERLAYS="mmc.dtbo"
PART_SCHEME="MBR"
export BOARDNAME="GENERICSD"

arm_install_uboot_rpi2() {
	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 \
		bcm2709-rpi-2-b.dtb"
	FATMOUNT="${DESTDIR%${KERNEL}}/fat"
	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
	for _UF in ${UBOOT_FILES}; do
		chroot ${CHROOTDIR} cp -p ${RPI_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} mkdir -p ${FATMOUNT}/overlays
	for _OL in ${OVERLAYS}; do
		chroot ${CHROOTDIR} cp -p ${RPI_OL_DIR}/${_OL} \
			${FATMOUNT}/overlays/${_OL}
	done
	sync
	umount_loop ${CHROOTDIR}/${FATMOUNT}
	chroot ${CHROOTDIR} rmdir ${FATMOUNT}
	
	return 0
}

arm_install_uboot_bbb() {
	FATMOUNT="${DESTDIR%${KERNEL}}/fat"
	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
	chroot ${CHROOTDIR} cp -p ${BBB_UBOOT_DIR}/MLO ${FATMOUNT}/MLO
	chroot ${CHROOTDIR} cp -p ${BBB_UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
	sync
	umount_loop ${CHROOTDIR}/${FATMOUNT}
	chroot ${CHROOTDIR} rmdir ${FATMOUNT}

	return 0
}

arm_install_uboot() {
	arm_install_uboot_bbb
	arm_install_uboot_rpi2
}