Home | History | Annotate | Line # | Download | only in etc.evbarm
Makefile.inc revision 1.133
      1  1.133      jmmv #	$NetBSD: Makefile.inc,v 1.133 2024/12/31 08:02:48 jmmv 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.47      hans 	HOST_SH=${HOST_SH} \
     92   1.88  jmcneill 	KERNOBJDIR=${KERNOBJDIR} \
     93   1.88  jmcneill 	MACHINE=${MACHINE} \
     94  1.115  jmcneill 	MKDTB=${MKDTB} \
     95  1.132      jmmv 	MKPOSTFIX=${MKPOSTFIX} \
     96   1.47      hans 	${HOST_SH} ${MKIMAGE} -x -h ${.TARGET:S/smp_//} -D ${DESTDIR} \
     97   1.77    martin 	    -S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \
     98  1.133      jmmv 	    ${IMAGE.dir}/${.TARGET:S/smp_//}.img
     99  1.127     brook .for f in ${INSTALLBOOT_BOARDS}
    100  1.127     brook 	@echo "===> Making bootable image ${IMAGE.dir:T}/${.TARGET:S/smp_//}-${f}.img.gz"
    101  1.127     brook 	@cp ${IMAGE.dir}/${.TARGET:S/smp_//}.img ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
    102  1.127     brook 	@${TOOL_INSTALLBOOT} -m ${MACHINE} -o board=${f} \
    103  1.127     brook 			${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
    104  1.127     brook 		&& ${TOOL_GZIP} -f ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
    105  1.127     brook 		|| rm ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
    106  1.127     brook .endfor
    107  1.133      jmmv 	@echo "===> Compressing image ${IMAGE.dir}/${.TARGET:S/smp_//}.img"
    108  1.133      jmmv 	${TOOL_GZIP} -f ${GZIP_N_FLAG} -9 ${IMAGE.dir}/${.TARGET:S/smp_//}.img
    109   1.40  christos 
    110   1.53      matt ARCHES.earmv4=		armv4
    111   1.54      matt ARCHES.earmv4eb=	armv4
    112   1.54      matt ARCHES.earmv5=		xscale armv5t
    113   1.54      matt ARCHES.earmv5eb=	xscale armv5t
    114   1.53      matt ARCHES.earmv6=		armv6
    115   1.53      matt ARCHES.earmv6hf=	armv6hf
    116   1.54      matt ARCHES.earmv6eb=	armv6
    117   1.54      matt ARCHES.earmv6hfeb=	armv6hf
    118   1.53      matt ARCHES.earmv7=		armv7
    119   1.53      matt ARCHES.earmv7hf=	armv7hf
    120   1.54      matt ARCHES.earmv7eb=	armv7
    121   1.54      matt ARCHES.earmv7hfeb=	armv7hf
    122   1.93       ryo ARCHES.aarch64=		arm64
    123  1.121  jmcneill ARCHES.aarch64eb=	arm64
    124   1.54      matt .for arch in ${ARCHES.${MACHINE_ARCH}}
    125   1.53      matt .for board in ${EVBARM_BOARDS.${arch}}
    126   1.53      matt KERNEL_SETS+=		${board}
    127   1.53      matt BUILD_KERNELS+=		${board}_INSTALL
    128   1.53      matt .endfor
    129   1.53      matt KERNEL_SETS+=		${KERNEL_SETS.${arch}}
    130   1.53      matt .endfor
    131   1.53      matt 
    132  1.121  jmcneill .if !empty(MACHINE_ARCH:Maarch64*)
    133   1.94  jmcneill smp_efibootaa64:
    134   1.94  jmcneill 	cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release
    135   1.94  jmcneill SNAP_MD_POST_DEPS+=	smp_efibootaa64
    136   1.94  jmcneill INSTALLATION_DIRS+=	installation/misc
    137   1.94  jmcneill .endif
    138   1.94  jmcneill 
    139  1.103  jmcneill .if !empty(MACHINE_ARCH:Mearmv7hf)
    140  1.102  jmcneill smp_efibootarm:
    141  1.102  jmcneill 	cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release
    142  1.102  jmcneill SNAP_MD_POST_DEPS+=	smp_efibootarm
    143  1.102  jmcneill INSTALLATION_DIRS+=	installation/misc
    144  1.102  jmcneill .endif
    145  1.102  jmcneill 
    146   1.72  jmcneill .if !empty(MACHINE_ARCH:M*armv7*) && empty(ALL_KERNELS)
    147   1.72  jmcneill smp_armv7: __mkimage
    148   1.72  jmcneill MKI_OPTS.smp_armv7=	-K ${IMAGE.kern}
    149   1.72  jmcneill SNAP_MD_POST_DEPS+=	smp_armv7
    150   1.48   mlelstv .endif
    151   1.12   thorpej 
    152  1.121  jmcneill .if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS)
    153   1.93       ryo smp_arm64: __mkimage
    154   1.93       ryo MKI_OPTS.smp_arm64=	-K ${IMAGE.kern}
    155   1.93       ryo SNAP_MD_POST_DEPS+=	smp_arm64
    156  1.120  jmcneill smp_arm64mbr: __mkimage
    157  1.120  jmcneill MKI_OPTS.smp_arm64mbr=	-K ${IMAGE.kern}
    158  1.120  jmcneill SNAP_MD_POST_DEPS+=	smp_arm64mbr
    159   1.93       ryo .endif
    160   1.93       ryo 
    161   1.53      matt .if !empty(KERNEL_SETS:MRPI)
    162   1.72  jmcneill smp_rpi: __mkimage
    163   1.50   mlelstv .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI)
    164   1.92  jmcneill MKI_OPTS.smp_rpi=	-K ${IMAGE.kern}/netbsd-RPI.img.gz
    165   1.50   mlelstv SNAP_MD_POST_DEPS+=	smp_rpi
    166   1.50   mlelstv .endif
    167   1.92  jmcneill smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage
    168   1.50   mlelstv .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL)
    169   1.92  jmcneill MKI_OPTS.smp_rpi_inst=	-b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz
    170   1.50   mlelstv SNAP_MD_POST_DEPS+=	smp_rpi_inst
    171   1.30      matt .endif
    172   1.48   mlelstv .endif
    173   1.30      matt 
    174   1.42  jmcneill snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS}
    175   1.40  christos 
    176  1.124  jmcneill .if !empty(MACHINE_ARCH:Maarch64*)
    177  1.124  jmcneill KERNEL_SUFFIXES=	img
    178  1.124  jmcneill .else
    179   1.92  jmcneill KERNEL_SUFFIXES=	bin img srec ub
    180  1.124  jmcneill .endif
    181    1.6   thorpej 
    182    1.9     lukem INSTALLATION_DIRS+=	binary/gzimg		\
    183   1.90  christos 			installation/instkernel
    184