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