2022-11-03 12:04:56 +03:00
|
|
|
# $NetBSD: Makefile.inc,v 1.131 2022/11/03 09:04:56 skrll Exp $
|
2001-11-30 01:46:42 +03:00
|
|
|
#
|
|
|
|
# etc.evbarm/Makefile.inc -- evbarm-specific etc Makefile targets
|
|
|
|
#
|
|
|
|
|
2013-02-09 22:49:55 +04:00
|
|
|
MKIMAGE= ${NETBSDSRCDIR}/distrib/utils/embedded/mkimage
|
|
|
|
|
2007-07-24 14:49:23 +04:00
|
|
|
# If you change the list of distributed kernels, don't forget
|
|
|
|
# to update the release documentation in distrib/notes/common/contents
|
2012-08-06 11:51:13 +04:00
|
|
|
EVBARM_BOARDS=
|
2018-04-01 07:35:01 +03:00
|
|
|
.for i in armv4 xscale armv5t armv6 armv7 arm64
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.${i}=
|
|
|
|
.endfor
|
2007-07-24 14:49:23 +04:00
|
|
|
|
2021-05-27 11:43:02 +03:00
|
|
|
.if !empty(MACHINE_ARCH:M*eb)
|
2015-07-15 14:27:13 +03:00
|
|
|
IMAGEENDIAN= be
|
2013-08-06 09:57:37 +04:00
|
|
|
# big endian boards
|
2013-08-07 10:09:32 +04:00
|
|
|
KERNEL_SETS.armv4+= IXM1200
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.xscale+= ADI_BRH
|
|
|
|
KERNEL_SETS.xscale+= NSLU2
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2021-08-30 03:14:45 +03:00
|
|
|
EVBARM_BOARDS.armv5t+= KUROBOX_PRO
|
2022-05-20 19:12:34 +03:00
|
|
|
KERNEL_SETS.armv5t+= OPENBLOCKS_A6
|
2021-08-30 03:14:45 +03:00
|
|
|
# Other marvell-based machines may also work but not tested yet.
|
|
|
|
|
2020-12-01 07:20:21 +03:00
|
|
|
EVBARM_BOARDS.armv6+= RPI
|
|
|
|
EVBARM_BOARDS.armv6hf+= RPI
|
|
|
|
KERNEL_SETS.armv6+= RPI2
|
|
|
|
KERNEL_SETS.armv6hf+= RPI2
|
|
|
|
|
2020-05-22 17:09:54 +03:00
|
|
|
KERNEL_SETS.armv7+= GENERIC
|
|
|
|
KERNEL_SETS.armv7hf+= GENERIC
|
2022-11-03 12:04:56 +03:00
|
|
|
|
2021-05-27 11:43:02 +03:00
|
|
|
KERNEL_SETS.arm64+= GENERIC64
|
2022-11-03 12:04:56 +03:00
|
|
|
KERNEL_SETS.arm64+= GENERIC64_PMAPMI
|
2013-08-06 09:57:37 +04:00
|
|
|
.else
|
2015-07-15 14:27:13 +03:00
|
|
|
IMAGEENDIAN= le
|
2013-08-06 09:57:37 +04:00
|
|
|
# little endian boards
|
|
|
|
EVBARM_BOARDS.armv4+= GEMINI
|
|
|
|
EVBARM_BOARDS.armv4+= INTEGRATOR
|
2015-01-27 23:26:34 +03:00
|
|
|
EVBARM_BOARDS.armv4+= INTEGRATOR_CP
|
2013-08-07 10:09:32 +04:00
|
|
|
KERNEL_SETS.armv4+= IXM1200
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.armv4+= SMDK2410
|
|
|
|
EVBARM_BOARDS.armv4+= SMDK2800
|
|
|
|
EVBARM_BOARDS.armv4+= TS7200
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.xscale+= ADI_BRH
|
|
|
|
EVBARM_BOARDS.xscale+= CP3100
|
|
|
|
EVBARM_BOARDS.xscale+= GUMSTIX
|
|
|
|
KERNEL_SETS.xscale+= HDL_G
|
|
|
|
EVBARM_BOARDS.xscale+= IQ80310
|
|
|
|
EVBARM_BOARDS.xscale+= IQ80321
|
|
|
|
EVBARM_BOARDS.xscale+= TEAMASA_NPWR
|
|
|
|
EVBARM_BOARDS.xscale+= TWINTAIL
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.armv5t+= KUROBOX_PRO
|
|
|
|
EVBARM_BOARDS.armv5t+= MV2120
|
2022-05-20 19:12:34 +03:00
|
|
|
KERNEL_SETS.armv5t+= OPENBLOCKS_A6
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.armv5t+= OPENRD
|
|
|
|
EVBARM_BOARDS.armv5t+= SHEEVAPLUG
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
EVBARM_BOARDS.armv6+= RPI
|
|
|
|
EVBARM_BOARDS.armv6hf+= RPI
|
2015-03-06 14:11:55 +03:00
|
|
|
KERNEL_SETS.armv6+= RPI2
|
|
|
|
KERNEL_SETS.armv6hf+= RPI2
|
2018-10-21 10:08:40 +03:00
|
|
|
|
2020-05-22 17:09:54 +03:00
|
|
|
KERNEL_SETS.armv7+= GENERIC
|
|
|
|
KERNEL_SETS.armv7hf+= GENERIC
|
2022-11-03 12:04:56 +03:00
|
|
|
|
2018-04-01 07:35:01 +03:00
|
|
|
KERNEL_SETS.arm64+= GENERIC64
|
2022-11-03 12:04:56 +03:00
|
|
|
KERNEL_SETS.arm64+= GENERIC64_PMAPMI
|
2012-08-06 11:51:13 +04:00
|
|
|
.endif
|
|
|
|
|
2013-02-10 20:40:21 +04:00
|
|
|
IMAGE.rel= ${RELEASEDIR}/${RELEASEMACHINEDIR}
|
2013-02-13 08:22:36 +04:00
|
|
|
IMAGE.dir= ${IMAGE.rel}/binary/gzimg
|
2013-02-10 20:40:21 +04:00
|
|
|
IMAGE.kern= ${IMAGE.rel}/binary/kernel
|
2013-03-20 02:16:52 +04:00
|
|
|
IMAGE.instk= ${IMAGE.rel}/installation/instkernel
|
2013-02-10 20:40:21 +04:00
|
|
|
|
|
|
|
__mkimage: .USE
|
2017-07-06 03:17:04 +03:00
|
|
|
TOOL_MAKE=${MAKE} \
|
2013-02-10 20:40:21 +04:00
|
|
|
TOOL_MAKEFS=${TOOL_MAKEFS} \
|
|
|
|
TOOL_DISKLABEL=${TOOL_DISKLABEL} \
|
|
|
|
TOOL_FDISK=${TOOL_FDISK} \
|
2020-05-24 17:44:11 +03:00
|
|
|
TOOL_GPT=${TOOL_GPT} \
|
2013-06-16 17:47:42 +04:00
|
|
|
TOOL_GZIP=${TOOL_GZIP} \
|
2013-02-10 20:40:21 +04:00
|
|
|
TOOL_MKNOD=${TOOL_MKNOD} \
|
|
|
|
TOOL_PAX=${TOOL_PAX} \
|
2015-05-22 04:18:05 +03:00
|
|
|
TOOL_MKUBOOTIMAGE=${TOOL_MKUBOOTIMAGE} \
|
2013-02-10 20:40:21 +04:00
|
|
|
TOOL_MTREE=${TOOL_MTREE} \
|
2013-02-21 19:13:10 +04:00
|
|
|
HOST_SH=${HOST_SH} \
|
2017-07-06 03:17:04 +03:00
|
|
|
KERNOBJDIR=${KERNOBJDIR} \
|
|
|
|
MACHINE=${MACHINE} \
|
2020-05-19 00:19:34 +03:00
|
|
|
MKDTB=${MKDTB} \
|
2013-02-21 19:13:10 +04:00
|
|
|
${HOST_SH} ${MKIMAGE} -x -h ${.TARGET:S/smp_//} -D ${DESTDIR} \
|
2015-07-15 14:27:13 +03:00
|
|
|
-S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \
|
2013-02-11 02:03:49 +04:00
|
|
|
${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz
|
Create bootable images in ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg.
Release builds for arm platforms create compressed images in
${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg. However, in some
cases, e.g., armv7.img.gz, they are not bootable. Consequently, boot
blocks must be manually installed in the images, which is an extra
barrier for testing systems or adopting NetBSD. This has prompted
creation of external repositories, e.g., armbsd.org, to host a
collection of bootable images. However, this does not ease the burden
on developers compiling their own systems; for them, manual
installation of boot blocks is still required.
For arm platforms, etc/etc.evbarm/Makefile.inc contains the commands
used to create system images. Because installboot(8) can write boot
blocks directly to system images, a loop through possible boards can
create a series of bootable images during the normal build process.
In the case of many arm platforms, installboot(8) uses U-Boot boot
blocks, which are not part of the NetBSD source code. Developers can,
however, install as many U-Boot boot blocks as desired, either in the
default location of /usr/pkg/share/u-boot or in a set of directories
pointed to by the U-Boot search path, the INSTALLBOOT_UBOOT_PATHS
environment variable. For each board with an available boot block, a
board-specific bootable image will be created in
${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg. If a boot block is
not available, which is the typical situation currently, no additional
image will be created.
This facility creates opportunities to build bootable images for any
number of boards within the scope of a standard release build.
However, that is not required and will not occur without the
intervention of installing U-Boot boot blocks prior to the build.
2022-08-21 18:01:08 +03:00
|
|
|
${TOOL_GZIP} -cd ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz \
|
|
|
|
> ${IMAGE.dir}/${.TARGET:S/smp_//}.img
|
|
|
|
.for f in ${INSTALLBOOT_BOARDS}
|
|
|
|
@echo "===> Making bootable image ${IMAGE.dir:T}/${.TARGET:S/smp_//}-${f}.img.gz"
|
|
|
|
@cp ${IMAGE.dir}/${.TARGET:S/smp_//}.img ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
|
|
|
|
@${TOOL_INSTALLBOOT} -m ${MACHINE} -o board=${f} \
|
|
|
|
${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
|
|
|
|
&& ${TOOL_GZIP} -f ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img \
|
|
|
|
|| rm ${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
|
|
|
|
.endfor
|
|
|
|
rm ${IMAGE.dir}/${.TARGET:S/smp_//}.img
|
2013-02-10 20:40:21 +04:00
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
ARCHES.earmv4= armv4
|
2013-08-06 21:53:55 +04:00
|
|
|
ARCHES.earmv4eb= armv4
|
|
|
|
ARCHES.earmv5= xscale armv5t
|
|
|
|
ARCHES.earmv5eb= xscale armv5t
|
2013-08-06 09:57:37 +04:00
|
|
|
ARCHES.earmv6= armv6
|
|
|
|
ARCHES.earmv6hf= armv6hf
|
2013-08-06 21:53:55 +04:00
|
|
|
ARCHES.earmv6eb= armv6
|
|
|
|
ARCHES.earmv6hfeb= armv6hf
|
2013-08-06 09:57:37 +04:00
|
|
|
ARCHES.earmv7= armv7
|
|
|
|
ARCHES.earmv7hf= armv7hf
|
2013-08-06 21:53:55 +04:00
|
|
|
ARCHES.earmv7eb= armv7
|
|
|
|
ARCHES.earmv7hfeb= armv7hf
|
2018-04-01 07:35:01 +03:00
|
|
|
ARCHES.aarch64= arm64
|
2020-10-02 20:27:12 +03:00
|
|
|
ARCHES.aarch64eb= arm64
|
2013-08-06 21:53:55 +04:00
|
|
|
.for arch in ${ARCHES.${MACHINE_ARCH}}
|
2013-08-06 09:57:37 +04:00
|
|
|
.for board in ${EVBARM_BOARDS.${arch}}
|
2003-04-10 06:22:06 +04:00
|
|
|
KERNEL_SETS+= ${board}
|
|
|
|
BUILD_KERNELS+= ${board}_INSTALL
|
|
|
|
.endfor
|
2013-08-06 09:57:37 +04:00
|
|
|
KERNEL_SETS+= ${KERNEL_SETS.${arch}}
|
|
|
|
.endfor
|
2003-04-10 06:22:06 +04:00
|
|
|
|
2020-10-02 20:27:12 +03:00
|
|
|
.if !empty(MACHINE_ARCH:Maarch64*)
|
2018-08-28 01:41:56 +03:00
|
|
|
smp_efibootaa64:
|
|
|
|
cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release
|
|
|
|
SNAP_MD_POST_DEPS+= smp_efibootaa64
|
|
|
|
INSTALLATION_DIRS+= installation/misc
|
|
|
|
.endif
|
|
|
|
|
2019-03-30 16:53:19 +03:00
|
|
|
.if !empty(MACHINE_ARCH:Mearmv7hf)
|
2019-03-30 16:05:24 +03:00
|
|
|
smp_efibootarm:
|
|
|
|
cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release
|
|
|
|
SNAP_MD_POST_DEPS+= smp_efibootarm
|
|
|
|
INSTALLATION_DIRS+= installation/misc
|
|
|
|
.endif
|
|
|
|
|
2015-04-09 13:55:23 +03:00
|
|
|
.if !empty(MACHINE_ARCH:M*armv7*) && empty(ALL_KERNELS)
|
|
|
|
smp_armv7: __mkimage
|
|
|
|
MKI_OPTS.smp_armv7= -K ${IMAGE.kern}
|
|
|
|
SNAP_MD_POST_DEPS+= smp_armv7
|
2012-08-06 11:51:13 +04:00
|
|
|
.endif
|
|
|
|
|
2020-10-02 20:27:12 +03:00
|
|
|
.if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS)
|
2018-04-01 07:35:01 +03:00
|
|
|
smp_arm64: __mkimage
|
|
|
|
MKI_OPTS.smp_arm64= -K ${IMAGE.kern}
|
|
|
|
SNAP_MD_POST_DEPS+= smp_arm64
|
2020-05-28 13:22:49 +03:00
|
|
|
smp_arm64mbr: __mkimage
|
|
|
|
MKI_OPTS.smp_arm64mbr= -K ${IMAGE.kern}
|
|
|
|
SNAP_MD_POST_DEPS+= smp_arm64mbr
|
2018-04-01 07:35:01 +03:00
|
|
|
.endif
|
|
|
|
|
2013-08-06 09:57:37 +04:00
|
|
|
.if !empty(KERNEL_SETS:MRPI)
|
2015-04-09 13:55:23 +03:00
|
|
|
smp_rpi: __mkimage
|
2013-03-21 19:16:43 +04:00
|
|
|
.if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI)
|
2017-12-11 14:38:14 +03:00
|
|
|
MKI_OPTS.smp_rpi= -K ${IMAGE.kern}/netbsd-RPI.img.gz
|
2013-03-21 19:16:43 +04:00
|
|
|
SNAP_MD_POST_DEPS+= smp_rpi
|
|
|
|
.endif
|
2017-12-11 14:38:14 +03:00
|
|
|
smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage
|
2013-03-21 19:16:43 +04:00
|
|
|
.if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL)
|
2017-12-11 14:38:14 +03:00
|
|
|
MKI_OPTS.smp_rpi_inst= -b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz
|
2013-03-21 19:16:43 +04:00
|
|
|
SNAP_MD_POST_DEPS+= smp_rpi_inst
|
2012-08-06 11:51:13 +04:00
|
|
|
.endif
|
2013-03-17 16:19:57 +04:00
|
|
|
.endif
|
2012-08-06 11:51:13 +04:00
|
|
|
|
2013-02-11 01:36:31 +04:00
|
|
|
snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS}
|
2013-02-10 20:40:21 +04:00
|
|
|
|
2021-07-24 20:07:59 +03:00
|
|
|
.if !empty(MACHINE_ARCH:Maarch64*)
|
|
|
|
KERNEL_SUFFIXES= img
|
|
|
|
.else
|
2017-12-11 14:38:14 +03:00
|
|
|
KERNEL_SUFFIXES= bin img srec ub
|
2021-07-24 20:07:59 +03:00
|
|
|
.endif
|
2002-04-13 04:51:57 +04:00
|
|
|
|
2002-05-02 19:09:40 +04:00
|
|
|
INSTALLATION_DIRS+= binary/gzimg \
|
2017-08-20 18:35:31 +03:00
|
|
|
installation/instkernel
|