freebsd-skq/release/arm64/RPI3.conf

68 lines
2.0 KiB
Plaintext
Raw Normal View History

#!/bin/sh
#
# $FreeBSD$
#
DTB_DIR="/usr/local/share/rpi-firmware"
DTB="bcm2710-rpi-3-b.dtb"
EMBEDDED_TARGET_ARCH="aarch64"
EMBEDDED_TARGET="arm64"
EMBEDDEDBUILD=1
EMBEDDEDPORTS="sysutils/u-boot-rpi3 sysutils/rpi-firmware"
FAT_SIZE="50m -b 1m"
FAT_TYPE="16"
IMAGE_SIZE="2560M"
KERNEL="GENERIC"
MD_ARGS="-x 63 -y 255"
NODOC=1
OL_DIR="${DTB_DIR}/overlays"
OVERLAYS="mmc.dtbo pwm.dtbo pi3-disable-bt.dtbo"
PART_SCHEME="MBR"
export BOARDNAME="RPI3"
arm_install_uboot() {
UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi3"
UBOOT_FILES="README u-boot.bin"
DTB_FILES="armstub8.bin bootcode.bin fixup_cd.dat \
fixup_db.dat fixup_x.dat fixup.dat LICENCE.broadcom \
start_cd.elf start_db.elf start_x.elf start.elf ${DTB}"
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 _DF in ${DTB_FILES}; do
chroot ${CHROOTDIR} cp -p ${DTB_DIR}/${_DF} \
${FATMOUNT}/${_DF}
done
chroot ${CHROOTDIR} cp -p ${DTB_DIR}/config_rpi3.txt \
${FATMOUNT}/config.txt
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/overlays
for _OL in ${OVERLAYS}; do
chroot ${CHROOTDIR} cp -p ${OL_DIR}/${_OL} \
${FATMOUNT}/overlays/${_OL}
done
BOOTFILES="$(chroot ${CHROOTDIR} \
env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
WITH_UNIFIED_OBJDIR=yes \
make -C ${WORLDDIR}/stand -V .OBJDIR)"
BOOTFILES="$(chroot ${CHROOTDIR} realpath ${BOOTFILES})"
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/loader/loader.efi \
${FATMOUNT}/EFI/BOOT/bootaa64.efi
chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
sync
umount_loop ${CHROOTDIR}/${FATMOUNT}
umount_loop ${CHROOTDIR}/${UFSMOUNT}
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}