1 # $NetBSD: arm64.conf,v 1.3 2018/08/12 17:15:56 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 wscons=YES 25 devpubd=YES 26 EOF 27 } 28 29 populate_common() { 30 # Rename kernel to netbsd.img 31 mv "${mnt}/boot/netbsd-${kernel_GENERIC64}.img" "${mnt}/boot/netbsd.img" 32 # Install boot configuration file 33 mkdir -p "${mnt}/boot/extlinux" 34 cp ${DIR}/files/arm64_extlinux.conf "${mnt}/boot/extlinux/extlinux.conf" 35 } 36 37 populate_allwinner() { 38 # U-Boot expects 64-bit DTB files to live in an allwinner/ subdirectory 39 mkdir -p "${mnt}/boot/dtb/allwinner" 40 mv "${mnt}"/boot/sun50i-*.dtb "${mnt}/boot/dtb/allwinner/" 41 } 42 43 populate_rockchip() { 44 # U-Boot expects 64-bit DTB files to live in a rockchip/ subdirectory 45 mkdir -p "${mnt}/boot/dtb/rockchip" 46 mv "${mnt}"/boot/rk3328-*.dtb "${mnt}/boot/dtb/rockchip/" 47 mv "${mnt}"/boot/rk3399-*.dtb "${mnt}/boot/dtb/rockchip/" 48 } 49 50 populate_rpi() { 51 firmwaredir="${src}/external/broadcom/rpi-firmware/dist" 52 firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf" 53 54 cat > "${mnt}/boot/cmdline.txt" << EOF 55 root=ld0a console=${console} 56 EOF 57 58 cat > "${mnt}/boot/config.txt" << EOF 59 arm_64bit=1 60 kernel=netbsd.img 61 kernel_address=0x200000 62 enable_uart=1 63 force_turbo=0 64 EOF 65 66 echo "${bar} installing firmware files ${bar}" 67 (cd "${mnt}/boot" && 68 for f in ${firmwarefiles}; do 69 echo " $f" 70 cp "${firmwaredir}/${f}" . 71 done 72 ) 73 } 74 75 populate_nvidia() { 76 # Move tegra dtb files to /boot/dtb 77 mkdir -p "${mnt}/boot/dtb" 78 mv "${mnt}"/boot/tegra*.dtb "${mnt}/boot/dtb/" 79 } 80 81 populate() { 82 echo "${bar} looking for kernel in ${kernel} ${bar}" 83 kernels="" 84 k="$kernel_GENERIC64" 85 86 # .imgkernel 87 f="${kernel}/netbsd-${k}.img.gz" 88 test -f "${f}" && kernels="${kernels} ${f}" 89 90 # .dtb files 91 test -d "${KERNOBJDIR}/${k}" && \ 92 dtbs="$(${MAKE} -C ${KERNOBJDIR}/${k} -v DTB)" || \ 93 dtbs= 94 for dtb in $dtbs; do 95 f="${kernel}/${dtb}.gz" 96 test -f "${f}" && kernels="${kernels} ${f}" 97 done 98 99 # install files to /boot partition 100 for k in ${kernels}; do 101 tgt="$(basename ${k} | sed 's/\.gz$//')" 102 echo "${bar} installing ${k} to /boot/${tgt} ${bar}" 103 case "${k}" in 104 *.gz) 105 ${GZIP_CMD} -dc "${k}" > "${mnt}/boot/${tgt}" 106 ;; 107 *) 108 cp "${k}" "${mnt}/boot/${tgt}" 109 ;; 110 esac || 111 fail "Copy of ${k} to ${mnt}/boot/${tgt} failed" 112 done 113 114 # SoC specific configuration 115 populate_allwinner 116 populate_nvidia 117 populate_rockchip 118 119 # Board specific configuration 120 populate_rpi 121 122 # common configuration 123 populate_common 124 } 125