blob: d95634d68f060b66cf86df907814723b7d7826e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
# $NetBSD: Makefile.inc,v 1.131 2022/11/03 09:04:56 skrll Exp $
#
# etc.evbarm/Makefile.inc -- evbarm-specific etc Makefile targets
#
MKIMAGE= ${NETBSDSRCDIR}/distrib/utils/embedded/mkimage
# If you change the list of distributed kernels, don't forget
# to update the release documentation in distrib/notes/common/contents
EVBARM_BOARDS=
.for i in armv4 xscale armv5t armv6 armv7 arm64
EVBARM_BOARDS.${i}=
.endfor
.if !empty(MACHINE_ARCH:M*eb)
IMAGEENDIAN= be
# big endian boards
KERNEL_SETS.armv4+= IXM1200
EVBARM_BOARDS.xscale+= ADI_BRH
KERNEL_SETS.xscale+= NSLU2
EVBARM_BOARDS.armv5t+= KUROBOX_PRO
KERNEL_SETS.armv5t+= OPENBLOCKS_A6
# Other marvell-based machines may also work but not tested yet.
EVBARM_BOARDS.armv6+= RPI
EVBARM_BOARDS.armv6hf+= RPI
KERNEL_SETS.armv6+= RPI2
KERNEL_SETS.armv6hf+= RPI2
KERNEL_SETS.armv7+= GENERIC
KERNEL_SETS.armv7hf+= GENERIC
KERNEL_SETS.arm64+= GENERIC64
KERNEL_SETS.arm64+= GENERIC64_PMAPMI
.else
IMAGEENDIAN= le
# little endian boards
EVBARM_BOARDS.armv4+= GEMINI
EVBARM_BOARDS.armv4+= INTEGRATOR
EVBARM_BOARDS.armv4+= INTEGRATOR_CP
KERNEL_SETS.armv4+= IXM1200
EVBARM_BOARDS.armv4+= SMDK2410
EVBARM_BOARDS.armv4+= SMDK2800
EVBARM_BOARDS.armv4+= TS7200
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
EVBARM_BOARDS.armv5t+= KUROBOX_PRO
EVBARM_BOARDS.armv5t+= MV2120
KERNEL_SETS.armv5t+= OPENBLOCKS_A6
EVBARM_BOARDS.armv5t+= OPENRD
EVBARM_BOARDS.armv5t+= SHEEVAPLUG
EVBARM_BOARDS.armv6+= RPI
EVBARM_BOARDS.armv6hf+= RPI
KERNEL_SETS.armv6+= RPI2
KERNEL_SETS.armv6hf+= RPI2
KERNEL_SETS.armv7+= GENERIC
KERNEL_SETS.armv7hf+= GENERIC
KERNEL_SETS.arm64+= GENERIC64
KERNEL_SETS.arm64+= GENERIC64_PMAPMI
.endif
IMAGE.rel= ${RELEASEDIR}/${RELEASEMACHINEDIR}
IMAGE.dir= ${IMAGE.rel}/binary/gzimg
IMAGE.kern= ${IMAGE.rel}/binary/kernel
IMAGE.instk= ${IMAGE.rel}/installation/instkernel
__mkimage: .USE
TOOL_MAKE=${MAKE} \
TOOL_MAKEFS=${TOOL_MAKEFS} \
TOOL_DISKLABEL=${TOOL_DISKLABEL} \
TOOL_FDISK=${TOOL_FDISK} \
TOOL_GPT=${TOOL_GPT} \
TOOL_GZIP=${TOOL_GZIP} \
TOOL_MKNOD=${TOOL_MKNOD} \
TOOL_PAX=${TOOL_PAX} \
TOOL_MKUBOOTIMAGE=${TOOL_MKUBOOTIMAGE} \
TOOL_MTREE=${TOOL_MTREE} \
HOST_SH=${HOST_SH} \
KERNOBJDIR=${KERNOBJDIR} \
MACHINE=${MACHINE} \
MKDTB=${MKDTB} \
${HOST_SH} ${MKIMAGE} -x -h ${.TARGET:S/smp_//} -D ${DESTDIR} \
-S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \
${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz
${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
ARCHES.earmv4= armv4
ARCHES.earmv4eb= armv4
ARCHES.earmv5= xscale armv5t
ARCHES.earmv5eb= xscale armv5t
ARCHES.earmv6= armv6
ARCHES.earmv6hf= armv6hf
ARCHES.earmv6eb= armv6
ARCHES.earmv6hfeb= armv6hf
ARCHES.earmv7= armv7
ARCHES.earmv7hf= armv7hf
ARCHES.earmv7eb= armv7
ARCHES.earmv7hfeb= armv7hf
ARCHES.aarch64= arm64
ARCHES.aarch64eb= arm64
.for arch in ${ARCHES.${MACHINE_ARCH}}
.for board in ${EVBARM_BOARDS.${arch}}
KERNEL_SETS+= ${board}
BUILD_KERNELS+= ${board}_INSTALL
.endfor
KERNEL_SETS+= ${KERNEL_SETS.${arch}}
.endfor
.if !empty(MACHINE_ARCH:Maarch64*)
smp_efibootaa64:
cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release
SNAP_MD_POST_DEPS+= smp_efibootaa64
INSTALLATION_DIRS+= installation/misc
.endif
.if !empty(MACHINE_ARCH:Mearmv7hf)
smp_efibootarm:
cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release
SNAP_MD_POST_DEPS+= smp_efibootarm
INSTALLATION_DIRS+= installation/misc
.endif
.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
.endif
.if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS)
smp_arm64: __mkimage
MKI_OPTS.smp_arm64= -K ${IMAGE.kern}
SNAP_MD_POST_DEPS+= smp_arm64
smp_arm64mbr: __mkimage
MKI_OPTS.smp_arm64mbr= -K ${IMAGE.kern}
SNAP_MD_POST_DEPS+= smp_arm64mbr
.endif
.if !empty(KERNEL_SETS:MRPI)
smp_rpi: __mkimage
.if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI)
MKI_OPTS.smp_rpi= -K ${IMAGE.kern}/netbsd-RPI.img.gz
SNAP_MD_POST_DEPS+= smp_rpi
.endif
smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage
.if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL)
MKI_OPTS.smp_rpi_inst= -b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz
SNAP_MD_POST_DEPS+= smp_rpi_inst
.endif
.endif
snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS}
.if !empty(MACHINE_ARCH:Maarch64*)
KERNEL_SUFFIXES= img
.else
KERNEL_SUFFIXES= bin img srec ub
.endif
INSTALLATION_DIRS+= binary/gzimg \
installation/instkernel
|