1# $OpenBSD: Makefile,v 1.31 2023/10/26 17:13:50 deraadt Exp $ 2 3FS= miniroot${OSrev}.img 4FSSIZE= 88064 5CDROM= cd${OSrev}.iso 6MOUNT_POINT= /mnt 7MTREE= ${UTILS}/mtree.conf 8RAMDISK= RAMDISK 9 10# this offset is required by Rockchip 11MSDOSSTART= 32768 12MSDOSSIZE= 16384 13 14NEWFS_ARGS_msdos=-L boot -c1 -F16 15MOUNT_ARGS_msdos=-o-l 16 17PDTB= /usr/local/share/dtb/arm64 18PUBOOT= /usr/local/share/u-boot 19PRPI= /usr/local/share/raspberrypi-firmware/boot 20 21LISTS= ${.CURDIR}/list 22UTILS= ${.CURDIR}/../../miniroot 23 24MRDISKTYPE= rdroot 25MRMAKEFSARGS= -o disklabel=${MRDISKTYPE},minfree=0,density=4096 26 27PIFILES=\ 28 bootcode.bin \ 29 start.elf \ 30 start4.elf \ 31 fixup.dat \ 32 fixup4.dat \ 33 bcm2710-rpi-2-b.dtb \ 34 bcm2710-rpi-3-b.dtb \ 35 bcm2710-rpi-3-b-plus.dtb \ 36 bcm2710-rpi-cm3.dtb \ 37 bcm2711-rpi-4-b.dtb \ 38 bcm2711-rpi-400.dtb \ 39 bcm2711-rpi-cm4.dtb 40 41PIDTBO=\ 42 disable-bt.dtbo 43 44all: ${FS} ${CDROM} 45 46cdbr: /usr/mdec/BOOTAA64.EFI 47 dd if=/dev/zero of=cdbr bs=512 count=5760 48 vnconfig -v cdbr > vnd 49 fdisk -iy -b "5744@16:c" `cat vnd` >/dev/null 50 newfs -t msdos /dev/r`cat vnd`i 51 mount ${MOUNT_ARGS_msdos} /dev/`cat vnd`i ${MOUNT_POINT} 52 mkdir -p ${MOUNT_POINT}/efi/boot 53 cp /usr/mdec/BOOTAA64.EFI ${MOUNT_POINT}/efi/boot/bootaa64.efi 54 echo bootaa64.efi > ${MOUNT_POINT}/efi/boot/startup.nsh 55 umount ${MOUNT_POINT} 56 vnconfig -u `cat vnd` 57 rm -f vnd 58 59${FS}: bsd.rd 60 dd if=/dev/zero of=${FS} bs=512 count=${FSSIZE} 61 vnconfig -v ${FS} > vnd 62 fdisk -iy -b "${MSDOSSIZE}@${MSDOSSTART}:c" `cat vnd` >/dev/null 63 echo '/ *' | disklabel -wAT- `cat vnd` 64 newfs -t msdos ${NEWFS_ARGS_msdos} /dev/r`cat vnd`i 65 mount ${MOUNT_ARGS_msdos} /dev/`cat vnd`i ${MOUNT_POINT} 66.for FILE in ${PIFILES} 67 cp ${PRPI}/${FILE} ${MOUNT_POINT}/ 68.endfor 69 mkdir -p ${MOUNT_POINT}/overlays 70.for FILE in ${PIDTBO} 71 cp ${PRPI}/overlays/${FILE} ${MOUNT_POINT}/overlays/ 72.endfor 73 cp ${PUBOOT}/rpi_arm64/u-boot.bin ${MOUNT_POINT}/u-boot.bin 74 mkdir -p ${MOUNT_POINT}/efi/boot 75 cp /usr/mdec/BOOTAA64.EFI ${MOUNT_POINT}/efi/boot/bootaa64.efi 76 echo bootaa64.efi > ${MOUNT_POINT}/efi/boot/startup.nsh 77 echo 'arm_64bit=1\nenable_uart=1\ndtoverlay=disable-bt\nkernel=u-boot.bin' > ${MOUNT_POINT}/config.txt 78 umount ${MOUNT_POINT} 79 newfs -O 1 -m 0 -o space -i 524288 -c ${FSSIZE} /dev/r`cat vnd`a 80 mount /dev/`cat vnd`a ${MOUNT_POINT} 81 install -c -m 555 -o root -g wheel bsd.rd ${MOUNT_POINT}/bsd 82 ln ${MOUNT_POINT}/bsd ${MOUNT_POINT}/bsd.rd 83 df -i ${MOUNT_POINT} 84 umount ${MOUNT_POINT} 85 vnconfig -u `cat vnd` 86 rm -f vnd 87 88${CDROM}: ${BASE} ${XBASE} cdbr bsd.rd 89 rm -rf ${.OBJDIR}/cd-dir 90 mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} 91 mkdir -p ${.OBJDIR}/cd-dir/etc 92 echo "set image /${OSREV}/${MACHINE}/bsd.rd" > ${.OBJDIR}/cd-dir/etc/boot.conf 93 cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} 94 cp -p ${.OBJDIR}/cdbr ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE} 95 mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \ 96 -A "OpenBSD ${OSREV} ${MACHINE} Install CD" \ 97 -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \ 98 -p "Theo de Raadt <deraadt@openbsd.org>" \ 99 -V "OpenBSD/${MACHINE} ${OSREV} Install CD" \ 100 -b ${OSREV}/${MACHINE}/cdbr -c ${OSREV}/${MACHINE}/boot.catalog \ 101 ${.OBJDIR}/cd-dir 102 103bsd.rd: mr.fs 104 cp bsd bsd.rd 105 rdsetroot bsd.rd mr.fs 106 107bsd: 108 cd ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK} && \ 109 su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && exec ${MAKE} ${MFLAGS}' 110 cp -p ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK}/obj/bsd bsd 111 112mr.fs: instbin bsd 113 rm -rf $@.d 114 install -d -o root -g wheel $@.d 115 mtree -def ${MTREE} -p $@.d -u 116 CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} OSrev=${OSrev} \ 117 TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \ 118 sh ${UTILS}/runlist.sh ${LISTS} 119 rm $@.d/instbin 120 makefs ${MRMAKEFSARGS} $@ $@.d 121 122instbin.mk instbin.cache instbin.c: instbin.conf 123 crunchgen -E -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib \ 124 -c instbin.c -e instbin -m instbin.mk instbin.conf 125 126instbin: instbin.mk instbin.cache instbin.c 127 ${MAKE} ${MFLAGS} -f instbin.mk SRCLIBDIR=${.CURDIR}/../../../lib all 128 129instbin.conf: ${LISTS} 130 awk -f ${UTILS}/makeconf.awk ${LISTS} > instbin.conf 131 132unconfig: 133 -umount -f ${MOUNT_POINT} 134 -[ -f vnd ] && vnconfig -u `cat vnd` && rm -f vnd 135 136.ifdef RELEASEDIR 137install: 138 cp bsd.rd ${RELEASEDIR}/bsd.rd 139 chmod a+r ${RELEASEDIR}/bsd.rd 140 cp ${FS} ${CDROM} ${RELEASEDIR} 141.endif 142 143clean cleandir: 144 rm -f *.core mr.fs instbin instbin.mk instbin.cache \ 145 lib*.a lib*.olist instbin.map *.o *.lo *.c bsd.rd 146 rm -f instbin.conf 147 rm -rf cd-dir mr.fs.d cdbr 148 149.include <bsd.obj.mk> 150