Home | History | Annotate | Line # | Download | only in etc.evbarm
Makefile.inc revision 1.127
      1 #	$NetBSD: Makefile.inc,v 1.127 2022/08/21 15:01:08 brook 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 KERNEL_SETS.arm64+=		GENERIC64
     35 .else
     36 IMAGEENDIAN=	le
     37 # little endian boards
     38 #EVBARM_BOARDS.armv4+=		ARMADILLO210
     39 #EVBARM_BOARDS.armv4+=		ARMADILLO9
     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+=		MINI2440
     45 #EVBARM_BOARDS.armv4+=		MPCSA_GENERIC
     46 #EVBARM_BOARDS.armv4+=		NAPPI
     47 EVBARM_BOARDS.armv4+=		SMDK2410
     48 EVBARM_BOARDS.armv4+=		SMDK2800
     49 EVBARM_BOARDS.armv4+=		TS7200
     50 
     51 EVBARM_BOARDS.xscale+=		ADI_BRH
     52 EVBARM_BOARDS.xscale+=		CP3100
     53 EVBARM_BOARDS.xscale+=		GUMSTIX
     54 KERNEL_SETS.xscale+=		HDL_G
     55 EVBARM_BOARDS.xscale+=		IQ80310
     56 EVBARM_BOARDS.xscale+=		IQ80321
     57 #EVBARM_BOARDS.xscale+=		LUBBOCK
     58 EVBARM_BOARDS.xscale+=		TEAMASA_NPWR
     59 EVBARM_BOARDS.xscale+=		TWINTAIL
     60 #EVBARM_BOARDS.xscale+=		VIPER
     61 #EVBARM_BOARDS.xscale+=		ZAO425
     62 
     63 #EVBARM_BOARDS.armv5t+=		DNS323
     64 #EVBARM_BOARDS.armv5t+=		HPT5325
     65 #EVBARM_BOARDS.armv5t+=		IMX23_OLINUXINO
     66 EVBARM_BOARDS.armv5t+=		KUROBOX_PRO
     67 #EVBARM_BOARDS.armv5t+=		MARVELL_NAS
     68 #EVBARM_BOARDS.armv5t+=		MMNET_GENERIC
     69 EVBARM_BOARDS.armv5t+=		MV2120
     70 KERNEL_SETS.armv5t+=		OPENBLOCKS_A6
     71 EVBARM_BOARDS.armv5t+=		OPENRD
     72 #EVBARM_BOARDS.armv5t+=		OSK5912
     73 EVBARM_BOARDS.armv5t+=		SHEEVAPLUG
     74 
     75 #EVBARM_BOARDS.armv6+=		IMX31LITE
     76 #EVBARM_BOARDS.armv6hf+= 	IMX31LITE
     77 EVBARM_BOARDS.armv6+=		RPI
     78 EVBARM_BOARDS.armv6hf+=	 	RPI
     79 KERNEL_SETS.armv6+=		RPI2
     80 KERNEL_SETS.armv6hf+=	 	RPI2
     81 EVBARM_BOARDS.armv6+=		TISDP2420
     82 EVBARM_BOARDS.armv6hf+= 	TISDP2420
     83 #EVBARM_BOARDS.armv6+=		TISDP2430
     84 
     85 KERNEL_SETS.armv7+=		GENERIC
     86 KERNEL_SETS.armv7hf+=		GENERIC
     87 KERNEL_SETS.arm64+=		GENERIC64
     88 .endif
     89 
     90 IMAGE.rel=	${RELEASEDIR}/${RELEASEMACHINEDIR}
     91 IMAGE.dir=	${IMAGE.rel}/binary/gzimg
     92 IMAGE.kern=	${IMAGE.rel}/binary/kernel
     93 IMAGE.instk=	${IMAGE.rel}/installation/instkernel
     94 
     95 # list of boards supported by installboot(8); a bootable image will be
     96 # created for each (if the corresponding U-Boot package is installed
     97 # in one of the directories listed in the environment variable
     98 # INSTALLBOOT_UBOOT_PATHS)
     99 #
    100 INSTALLBOOT_BOARDS!= \
    101 	${TOOL_INSTALLBOOT} -m ${MACHINE} 2>&1 \
    102 	| ${TOOL_AWK} 'BEGIN { FS=" " } { if (BOARDS) print $$1 } /^Known boards/{ BOARDS=1 }'
    103 
    104 __mkimage: .USE
    105 	TOOL_MAKE=${MAKE} \
    106 	TOOL_MAKEFS=${TOOL_MAKEFS} \
    107 	TOOL_DISKLABEL=${TOOL_DISKLABEL} \
    108 	TOOL_FDISK=${TOOL_FDISK} \
    109 	TOOL_GPT=${TOOL_GPT} \
    110 	TOOL_GZIP=${TOOL_GZIP} \
    111 	TOOL_MKNOD=${TOOL_MKNOD} \
    112 	TOOL_PAX=${TOOL_PAX} \
    113 	TOOL_MKUBOOTIMAGE=${TOOL_MKUBOOTIMAGE} \
    114 	TOOL_MTREE=${TOOL_MTREE} \
    115 	HOST_SH=${HOST_SH} \
    116 	KERNOBJDIR=${KERNOBJDIR} \
    117 	MACHINE=${MACHINE} \
    118 	MKDTB=${MKDTB} \
    119 	${HOST_SH} ${MKIMAGE} -x -h ${.TARGET:S/smp_//} -D ${DESTDIR} \
    120 	    -S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \
    121 	    ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz
    122 	${TOOL_GZIP} -cd ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz \
    123 		> ${IMAGE.dir}/${.TARGET:S/smp_//}.img
    124 .for f in ${INSTALLBOOT_BOARDS}
    125 	@echo "===> Making bootable image ${IMAGE.dir:T}/${.TARGET:S/smp_//}-${f}.img.gz"
    126 	@cp ${IMAGE.dir}/${.TARGET:S/smp_//}.img ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
    127 	@${TOOL_INSTALLBOOT} -m ${MACHINE} -o board=${f} \
    128 			${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
    129 		&& ${TOOL_GZIP} -f ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
    130 		|| rm ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
    131 .endfor
    132 	rm ${IMAGE.dir}/${.TARGET:S/smp_//}.img
    133 
    134 ARCHES.earmv4=		armv4
    135 ARCHES.earmv4eb=	armv4
    136 ARCHES.earmv5=		xscale armv5t
    137 ARCHES.earmv5eb=	xscale armv5t
    138 ARCHES.earmv6=		armv6
    139 ARCHES.earmv6hf=	armv6hf
    140 ARCHES.earmv6eb=	armv6
    141 ARCHES.earmv6hfeb=	armv6hf
    142 ARCHES.earmv7=		armv7
    143 ARCHES.earmv7hf=	armv7hf
    144 ARCHES.earmv7eb=	armv7
    145 ARCHES.earmv7hfeb=	armv7hf
    146 ARCHES.aarch64=		arm64
    147 ARCHES.aarch64eb=	arm64
    148 .for arch in ${ARCHES.${MACHINE_ARCH}}
    149 .for board in ${EVBARM_BOARDS.${arch}}
    150 KERNEL_SETS+=		${board}
    151 BUILD_KERNELS+=		${board}_INSTALL
    152 .endfor
    153 KERNEL_SETS+=		${KERNEL_SETS.${arch}}
    154 .endfor
    155 
    156 .if !empty(MACHINE_ARCH:Maarch64*)
    157 smp_efibootaa64:
    158 	cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release
    159 SNAP_MD_POST_DEPS+=	smp_efibootaa64
    160 INSTALLATION_DIRS+=	installation/misc
    161 .endif
    162 
    163 .if !empty(MACHINE_ARCH:Mearmv7hf)
    164 smp_efibootarm:
    165 	cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release
    166 SNAP_MD_POST_DEPS+=	smp_efibootarm
    167 INSTALLATION_DIRS+=	installation/misc
    168 .endif
    169 
    170 .if !empty(MACHINE_ARCH:M*armv7*) && empty(ALL_KERNELS)
    171 smp_armv7: __mkimage
    172 MKI_OPTS.smp_armv7=	-K ${IMAGE.kern}
    173 SNAP_MD_POST_DEPS+=	smp_armv7
    174 .endif
    175 
    176 .if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS)
    177 smp_arm64: __mkimage
    178 MKI_OPTS.smp_arm64=	-K ${IMAGE.kern}
    179 SNAP_MD_POST_DEPS+=	smp_arm64
    180 smp_arm64mbr: __mkimage
    181 MKI_OPTS.smp_arm64mbr=	-K ${IMAGE.kern}
    182 SNAP_MD_POST_DEPS+=	smp_arm64mbr
    183 .endif
    184 
    185 .if !empty(KERNEL_SETS:MRPI)
    186 smp_rpi: __mkimage
    187 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI)
    188 MKI_OPTS.smp_rpi=	-K ${IMAGE.kern}/netbsd-RPI.img.gz
    189 SNAP_MD_POST_DEPS+=	smp_rpi
    190 .endif
    191 smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage
    192 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL)
    193 MKI_OPTS.smp_rpi_inst=	-b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz
    194 SNAP_MD_POST_DEPS+=	smp_rpi_inst
    195 .endif
    196 .endif
    197 
    198 snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS}
    199 
    200 .if !empty(MACHINE_ARCH:Maarch64*)
    201 KERNEL_SUFFIXES=	img
    202 .else
    203 KERNEL_SUFFIXES=	bin img srec ub
    204 .endif
    205 
    206 INSTALLATION_DIRS+=	binary/gzimg		\
    207 			installation/instkernel
    208