Home | History | Annotate | Line # | Download | only in conf
arm64.conf revision 1.10
      1 # $NetBSD: arm64.conf,v 1.10 2020/05/18 21:19:34 jmcneill Exp $
      2 # ARM64 customization script used by mkimage
      3 #
      4 board=arm64
      5 console=fb
      6 resize=true
      7 
      8 . ${DIR}/conf/evbarm.conf
      9 
     10 kernel_GENERIC64="GENERIC64"
     11 
     12 make_label() {
     13 	make_label_evbarm
     14 }
     15 
     16 make_fstab() {
     17 	make_fstab_evbarm
     18 }
     19 
     20 customize() {
     21 	customize_evbarm
     22 	cat >> "${mnt}/etc/rc.conf" << EOF
     23 mdnsd=YES
     24 devpubd=YES
     25 wscons=\$(dev_exists wsdisplay0)
     26 ec2_init=\$(dev_exists ena0)
     27 EOF
     28 }
     29 
     30 populate_common() {
     31 	# Add EC2 init script
     32 	cp ${DIR}/files/ec2_init ${mnt}/etc/rc.d/ec2_init
     33 	echo "./etc/rc.d/ec2_init type=file uname=root gname=wheel mode=0555" \
     34 	    >> "$tmp/selected_sets"
     35 
     36 	# Rename kernel to netbsd.img
     37 	mv "${mnt}/boot/netbsd-${kernel_GENERIC64}.img" "${mnt}/boot/netbsd.img"
     38 
     39 	# Install EFI bootloader
     40 	mkdir -p "${mnt}/boot/EFI/BOOT"
     41 	cp "${release}/usr/mdec/bootaa64.efi" "${mnt}/boot/EFI/BOOT/bootaa64.efi"
     42 
     43 	# Install kernel to root of the FFS partition
     44 	${GZIP_CMD} -dc ${kernel}/netbsd-${kernel_GENERIC64}.gz > "${mnt}/netbsd"
     45 	echo "./netbsd type=file uname=root gname=wheel mode=0755" \
     46 	    >> "$tmp/selected_sets"
     47 }
     48 
     49 
     50 populate_rpi() {
     51 	firmwaredir="${src}/external/broadcom/rpi-firmware/dist"
     52 	firmwarefiles="LICENCE.broadcom bootcode.bin fixup4cd.dat fixup4.dat fixup_cd.dat fixup.dat start4cd.elf start4.elf start_cd.elf start.elf"
     53 
     54 	cat > "${mnt}/boot/cmdline.txt" << EOF
     55 root=ld0a console=${console}
     56 EOF
     57 
     58 	cat > "${mnt}/boot/cmdline-pi4.txt" << EOF
     59 root=ld1a console=${console}
     60 EOF
     61 
     62 	cat > "${mnt}/boot/config.txt" << EOF
     63 #
     64 upstream_kernel=1
     65 #
     66 arm_64bit=1
     67 os_prefix=dtb/broadcom/
     68 cmdline=../../cmdline.txt
     69 kernel=/netbsd.img
     70 kernel_address=0x200000
     71 enable_uart=1
     72 force_turbo=0
     73 #
     74 [pi4]
     75 cmdline=../../cmdline-pi4.txt
     76 #
     77 [all]
     78 EOF
     79 
     80 	echo "${bar} installing firmware files ${bar}"
     81 	(cd "${mnt}/boot" &&
     82 		for f in ${firmwarefiles}; do
     83 			echo " $f"
     84 			cp "${firmwaredir}/${f}" .
     85 		done
     86 	)
     87 }
     88 
     89 populate() {
     90 	echo "${bar} looking for kernel in ${kernel} ${bar}"
     91 	kernels=""
     92 	k="$kernel_GENERIC64"
     93 
     94 	# .img kernel
     95 	f="${kernel}/netbsd-${k}.img.gz"
     96 	test -f "${f}" && kernels="${kernels} ${f}"
     97 
     98 	# install files to /boot partition
     99 	for k in ${kernels}; do
    100 		tgt="$(basename ${k} | sed 's/\.gz$//')"
    101 		echo "${bar} installing ${k} to /boot/${tgt} ${bar}"
    102 		case "${k}" in
    103 		*.gz)
    104 			${GZIP_CMD} -dc "${k}" > "${mnt}/boot/${tgt}"
    105 			;;
    106 		*)
    107 			cp "${k}" "${mnt}/boot/${tgt}"
    108 			;;
    109 		esac ||
    110 			fail "Copy of ${k} to ${mnt}/boot/${tgt} failed"
    111 	done
    112 
    113 	# Board specific configuration
    114 	populate_rpi
    115 
    116 	# common configuration
    117 	populate_common
    118 }
    119