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 [email protected]
install -d -o root -g wheel [email protected]
+.for DIR in ${DIRS}
+ mkdir -p [email protected]/usr/mdec/${DIR}
+.endfor
mtree -def ${MTREE} -p [email protected] -u
TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} REV=${REV} \
[email protected] 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