Home | History | Annotate | Line # | Download | only in etc.evbarm
      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