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