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