Unlike the TI sitara/OMAP boot rom the raspberry pi boot rom will fail to read FAT12, the filesystem must be FAT16 or FAT32.
These changes require the raspberrypi-firmware port sent to ports@ to build release along with u-boot-aarch64. Index: distrib/arm64/miniroot/Makefile =================================================================== RCS file: /cvs/src/distrib/arm64/miniroot/Makefile,v retrieving revision 1.1 diff -u -p -r1.1 Makefile --- distrib/arm64/miniroot/Makefile 11 Feb 2017 06:36:03 -0000 1.1 +++ distrib/arm64/miniroot/Makefile 12 Feb 2017 04:55:01 -0000 @@ -23,11 +23,19 @@ FFSSTART!= expr ${MSDOSSTART} + ${MSDOSS FS?= msdos PART_ID?=C -NEWFS_ARGS_msdos=-L boot +NEWFS_ARGS_msdos=-L boot -c1 -F16 MOUNT_ARGS_msdos=-o-l PDTB= /usr/local/share/dtb/arm64 PUBOOT= /usr/local/share/u-boot +PRPI= /usr/local/share/raspberrypi-firmware/boot/ + +PIFILES=\ + bootcode.bin \ + start.elf \ + fixup.dat \ + bcm2710-rpi-3-b.dtb \ + bcm2710-rpi-cm3.dtb cleandir: clean clean: @@ -49,8 +57,13 @@ do_files: ln ${MOUNT_POINT}/bsd.rd ${MOUNT_POINT}/bsd -umount ${MOUNT_POINT} mount ${MOUNT_ARGS_msdos} ${VND_IDEV} ${MOUNT_POINT} +.for FILE in ${PIFILES} + cp ${PRPI}/${FILE} ${MOUNT_POINT}/ +.endfor + cp ${PUBOOT}/rpi_3/u-boot.bin ${MOUNT_POINT}/ mkdir -p ${MOUNT_POINT}/efi/boot cp /usr/mdec/BOOTAA64.EFI ${MOUNT_POINT}/efi/boot/bootaa64.efi + echo 'arm_control=0x200\nenable_uart=1\ndevice_tree_address=0x100\nkernel=u-boot.bin' > ${MOUNT_POINT}/config.txt rd_setup: dd if=/dev/zero of=${IMAGE} bs=512 count=${NBLKS} Index: distrib/arm64/ramdisk/Makefile =================================================================== RCS file: /cvs/src/distrib/arm64/ramdisk/Makefile,v retrieving revision 1.1 diff -u -p -r1.1 Makefile --- distrib/arm64/ramdisk/Makefile 23 Jan 2017 02:24:00 -0000 1.1 +++ distrib/arm64/ramdisk/Makefile 11 Feb 2017 07:16:42 -0000 @@ -17,6 +17,9 @@ MTREE= ${UTILS}/mtree.conf DISKTYPE= rdroot MAKEFSARGS_RD= -o disklabel=${DISKTYPE},minfree=0,density=4096 +DIRS=\ + rpi + .ifndef DESTDIR all ${IMAGE}: @echo setenv DESTDIR before making a ramdisk! @@ -39,6 +42,9 @@ ${BSD_RD}: ${IMAGE} bsd rdsetroot ${IMAGE}: ${CBIN} rm -rf $@.d install -d -o root -g wheel $@.d +.for DIR in ${DIRS} + mkdir -p $@.d/usr/mdec/${DIR} +.endfor mtree -def ${MTREE} -p $@.d -u TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} REV=${REV} \ TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \ Index: distrib/arm64/ramdisk/install.md =================================================================== RCS file: /cvs/src/distrib/arm64/ramdisk/install.md,v retrieving revision 1.1 diff -u -p -r1.1 install.md --- distrib/arm64/ramdisk/install.md 23 Jan 2017 02:24:00 -0000 1.1 +++ distrib/arm64/ramdisk/install.md 12 Feb 2017 02:58:37 -0000 @@ -39,12 +39,23 @@ NEWFSARGS_msdos="-F 16 -L boot" MOUNT_ARGS_msdos="-o-l" md_installboot() { - local _disk=/dev/$1 + local _disk=/dev/$1 _mdec _plat # Mount MSDOS partition, extract U-Boot and copy UEFI boot program mount ${MOUNT_ARGS_msdos} ${_disk}i /mnt/mnt mkdir -p /mnt/mnt/efi/boot cp /mnt/usr/mdec/BOOTAA64.EFI /mnt/mnt/efi/boot/bootaa64.efi + + _plat=rpi + _mdec=/usr/mdec/$_plat + + cp $_mdec/{bootcode.bin,start.elf,fixup.dat,*.dtb} /mnt/mnt/ + cat > /mnt/mnt/config.txt<<-__EOT + arm_control=0x200 + enable_uart=1 + device_tree_address=0x100 + kernel=u-boot.bin + __EOT } md_prep_fdisk() { Index: distrib/arm64/ramdisk/list =================================================================== RCS file: /cvs/src/distrib/arm64/ramdisk/list,v retrieving revision 1.1 diff -u -p -r1.1 list --- distrib/arm64/ramdisk/list 23 Jan 2017 02:24:00 -0000 1.1 +++ distrib/arm64/ramdisk/list 11 Feb 2017 07:16:42 -0000 @@ -116,4 +116,11 @@ SYMLINK install.sub autoinstall SYMLINK install.sub install SYMLINK install.sub upgrade +COPY /usr/local/share/raspberrypi-firmware/boot/bcm2710-rpi-3-b.dtb usr/mdec/rpi/bcm2710-rpi-3-b.dtb +COPY /usr/local/share/raspberrypi-firmware/boot/bcm2710-rpi-cm3.dtb usr/mdec/rpi/bcm2710-rpi-cm3.dtb +COPY /usr/local/share/raspberrypi-firmware/boot/bootcode.bin usr/mdec/rpi/bootcode.bin +COPY /usr/local/share/raspberrypi-firmware/boot/start.elf usr/mdec/rpi/start.elf +COPY /usr/local/share/raspberrypi-firmware/boot/fixup.dat usr/mdec/rpi/fixup.dat +COPY /usr/local/share/u-boot/rpi_3/u-boot.bin usr/mdec/rpi/u-boot.bin + TZ