1 # $NetBSD: Makefile.inc,v 1.136 2025/03/22 09:25:14 hgutch Exp $ 2 # 3 # etc.evbarm/Makefile.inc -- evbarm-specific etc Makefile targets 4 # 5 6 MKIMAGE= ${NETBSDSRCDIR}/distrib/utils/embedded/mkimage 7 8 # If you change the list of distributed kernels, don't forget 9 # to update the release documentation in distrib/notes/common/contents 10 EVBARM_BOARDS= 11 .for i in armv4 xscale armv5t armv6 armv7 arm64 12 EVBARM_BOARDS.${i}= 13 .endfor 14 15 .if !empty(MACHINE_ARCH:M*eb) 16 IMAGEENDIAN= be 17 # big endian boards 18 KERNEL_SETS.armv4+= IXM1200 19 20 EVBARM_BOARDS.xscale+= ADI_BRH 21 KERNEL_SETS.xscale+= NSLU2 22 23 EVBARM_BOARDS.armv5t+= KUROBOX_PRO 24 KERNEL_SETS.armv5t+= OPENBLOCKS_A6 25 # Other marvell-based machines may also work but not tested yet. 26 27 EVBARM_BOARDS.armv6+= RPI 28 EVBARM_BOARDS.armv6hf+= RPI 29 KERNEL_SETS.armv6+= RPI2 30 KERNEL_SETS.armv6hf+= RPI2 31 32 KERNEL_SETS.armv7+= GENERIC 33 KERNEL_SETS.armv7hf+= GENERIC 34 35 KERNEL_SETS.arm64+= GENERIC64 36 KERNEL_SETS.arm64+= GENERIC64_PMAPMI 37 .else 38 IMAGEENDIAN= le 39 # little endian boards 40 EVBARM_BOARDS.armv4+= GEMINI 41 EVBARM_BOARDS.armv4+= INTEGRATOR 42 EVBARM_BOARDS.armv4+= INTEGRATOR_CP 43 KERNEL_SETS.armv4+= IXM1200 44 EVBARM_BOARDS.armv4+= SMDK2410 45 EVBARM_BOARDS.armv4+= SMDK2800 46 EVBARM_BOARDS.armv4+= TS7200 47 48 EVBARM_BOARDS.xscale+= ADI_BRH 49 EVBARM_BOARDS.xscale+= CP3100 50 EVBARM_BOARDS.xscale+= GUMSTIX 51 KERNEL_SETS.xscale+= HDL_G 52 EVBARM_BOARDS.xscale+= IQ80310 53 EVBARM_BOARDS.xscale+= IQ80321 54 EVBARM_BOARDS.xscale+= TEAMASA_NPWR 55 EVBARM_BOARDS.xscale+= TWINTAIL 56 57 EVBARM_BOARDS.armv5t+= KUROBOX_PRO 58 EVBARM_BOARDS.armv5t+= MV2120 59 KERNEL_SETS.armv5t+= OPENBLOCKS_A6 60 EVBARM_BOARDS.armv5t+= OPENRD 61 EVBARM_BOARDS.armv5t+= SHEEVAPLUG 62 63 EVBARM_BOARDS.armv6+= RPI 64 EVBARM_BOARDS.armv6hf+= RPI 65 KERNEL_SETS.armv6+= RPI2 66 KERNEL_SETS.armv6hf+= RPI2 67 68 KERNEL_SETS.armv7+= GENERIC 69 KERNEL_SETS.armv7hf+= GENERIC 70 71 KERNEL_SETS.arm64+= GENERIC64 72 KERNEL_SETS.arm64+= GENERIC64_PMAPMI 73 .endif 74 75 IMAGE.rel= ${RELEASEDIR}/${RELEASEMACHINEDIR} 76 IMAGE.dir= ${IMAGE.rel}/binary/gzimg 77 IMAGE.kern= ${IMAGE.rel}/binary/kernel 78 IMAGE.instk= ${IMAGE.rel}/installation/instkernel 79 80 __mkimage: .USE 81 TOOL_MAKE=${MAKE} \ 82 TOOL_MAKEFS=${TOOL_MAKEFS} \ 83 TOOL_DISKLABEL=${TOOL_DISKLABEL} \ 84 TOOL_FDISK=${TOOL_FDISK} \ 85 TOOL_GPT=${TOOL_GPT} \ 86 TOOL_GZIP=${TOOL_GZIP} \ 87 TOOL_MKNOD=${TOOL_MKNOD} \ 88 TOOL_PAX=${TOOL_PAX} \ 89 TOOL_MKUBOOTIMAGE=${TOOL_MKUBOOTIMAGE} \ 90 TOOL_MTREE=${TOOL_MTREE} \ 91 TOOL_SED=${TOOL_SED} \ 92 TOOL_PWD_MKDB=${TOOL_PWD_MKDB} \ 93 HOST_SH=${HOST_SH} \ 94 KERNOBJDIR=${KERNOBJDIR} \ 95 MACHINE=${MACHINE} \ 96 MKDTB=${MKDTB} \ 97 MKPOSTFIX=${MKPOSTFIX} \ 98 CKSUM=${CKSUM} \ 99 IMAGEDIR=${IMAGE.dir} \ 100 ${HOST_SH} ${MKIMAGE} -h ${.TARGET:S/smp_//} -D ${DESTDIR} \ 101 -S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \ 102 ${IMAGE.dir}/${.TARGET:S/smp_//}.img 103 .for f in ${INSTALLBOOT_BOARDS} 104 @echo "===> Making bootable image ${IMAGE.dir:T}/${.TARGET:S/smp_//}-${f}.img.gz" 105 @cp ${IMAGE.dir}/${.TARGET:S/smp_//}.img ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img 106 @${TOOL_INSTALLBOOT} -m ${MACHINE} -o board=${f} \ 107 ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \ 108 && ${TOOL_GZIP} -f ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \ 109 || rm ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img 110 .endfor 111 @echo "===> Compressing image ${IMAGE.dir}/${.TARGET:S/smp_//}.img" 112 ${TOOL_GZIP} -f ${GZIP_N_FLAG} -9 ${IMAGE.dir}/${.TARGET:S/smp_//}.img 113 114 ARCHES.earmv4= armv4 115 ARCHES.earmv4eb= armv4 116 ARCHES.earmv5= xscale armv5t 117 ARCHES.earmv5eb= xscale armv5t 118 ARCHES.earmv6= armv6 119 ARCHES.earmv6hf= armv6hf 120 ARCHES.earmv6eb= armv6 121 ARCHES.earmv6hfeb= armv6hf 122 ARCHES.earmv7= armv7 123 ARCHES.earmv7hf= armv7hf 124 ARCHES.earmv7eb= armv7 125 ARCHES.earmv7hfeb= armv7hf 126 ARCHES.aarch64= arm64 127 ARCHES.aarch64eb= arm64 128 .for arch in ${ARCHES.${MACHINE_ARCH}} 129 .for board in ${EVBARM_BOARDS.${arch}} 130 KERNEL_SETS+= ${board} 131 BUILD_KERNELS+= ${board}_INSTALL 132 .endfor 133 KERNEL_SETS+= ${KERNEL_SETS.${arch}} 134 .endfor 135 136 .if !empty(MACHINE_ARCH:Maarch64*) 137 smp_efibootaa64: 138 cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release 139 SNAP_MD_POST_DEPS+= smp_efibootaa64 140 INSTALLATION_DIRS+= installation/misc 141 .endif 142 143 .if !empty(MACHINE_ARCH:Mearmv7hf) 144 smp_efibootarm: 145 cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release 146 SNAP_MD_POST_DEPS+= smp_efibootarm 147 INSTALLATION_DIRS+= installation/misc 148 .endif 149 150 .if !empty(MACHINE_ARCH:M*armv7*) && empty(ALL_KERNELS) 151 smp_armv7: __mkimage 152 MKI_OPTS.smp_armv7= -K ${IMAGE.kern} -x 153 SNAP_MD_POST_DEPS+= smp_armv7 154 .endif 155 156 .if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS) 157 smp_arm64: __mkimage 158 MKI_OPTS.smp_arm64= -K ${IMAGE.kern} -x 159 SNAP_MD_POST_DEPS+= smp_arm64 160 smp_arm64mbr: __mkimage 161 MKI_OPTS.smp_arm64mbr= -K ${IMAGE.kern} -x 162 SNAP_MD_POST_DEPS+= smp_arm64mbr 163 .endif 164 165 .if !empty(KERNEL_SETS:MRPI) 166 smp_rpi: __mkimage 167 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI) 168 MKI_OPTS.smp_rpi= -K ${IMAGE.kern}/netbsd-RPI.img.gz -x 169 SNAP_MD_POST_DEPS+= smp_rpi 170 .endif 171 smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage 172 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL) 173 MKI_OPTS.smp_rpi_inst= -b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz -x 174 SNAP_MD_POST_DEPS+= smp_rpi_inst 175 .endif 176 .endif 177 178 snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS} 179 180 .if !empty(MACHINE_ARCH:Maarch64*) 181 KERNEL_SUFFIXES= img 182 .else 183 KERNEL_SUFFIXES= bin img srec ub 184 .endif 185 186 INSTALLATION_DIRS+= binary/gzimg \ 187 installation/instkernel 188