Makefile.inc revision 1.125 1 # $NetBSD: Makefile.inc,v 1.125 2021/08/30 00:14:45 rin 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 # Other marvell-based machines may also work but not tested yet.
25
26 EVBARM_BOARDS.armv6+= RPI
27 EVBARM_BOARDS.armv6hf+= RPI
28 KERNEL_SETS.armv6+= RPI2
29 KERNEL_SETS.armv6hf+= RPI2
30
31 KERNEL_SETS.armv7+= GENERIC
32 KERNEL_SETS.armv7hf+= GENERIC
33 KERNEL_SETS.arm64+= GENERIC64
34 .else
35 IMAGEENDIAN= le
36 # little endian boards
37 #EVBARM_BOARDS.armv4+= ARMADILLO210
38 #EVBARM_BOARDS.armv4+= ARMADILLO9
39 EVBARM_BOARDS.armv4+= GEMINI
40 EVBARM_BOARDS.armv4+= INTEGRATOR
41 EVBARM_BOARDS.armv4+= INTEGRATOR_CP
42 KERNEL_SETS.armv4+= IXM1200
43 #EVBARM_BOARDS.armv4+= MINI2440
44 #EVBARM_BOARDS.armv4+= MPCSA_GENERIC
45 #EVBARM_BOARDS.armv4+= NAPPI
46 EVBARM_BOARDS.armv4+= SMDK2410
47 EVBARM_BOARDS.armv4+= SMDK2800
48 EVBARM_BOARDS.armv4+= TS7200
49
50 EVBARM_BOARDS.xscale+= ADI_BRH
51 EVBARM_BOARDS.xscale+= CP3100
52 EVBARM_BOARDS.xscale+= GUMSTIX
53 KERNEL_SETS.xscale+= HDL_G
54 EVBARM_BOARDS.xscale+= IQ80310
55 EVBARM_BOARDS.xscale+= IQ80321
56 #EVBARM_BOARDS.xscale+= LUBBOCK
57 EVBARM_BOARDS.xscale+= TEAMASA_NPWR
58 EVBARM_BOARDS.xscale+= TWINTAIL
59 #EVBARM_BOARDS.xscale+= VIPER
60 #EVBARM_BOARDS.xscale+= ZAO425
61
62 #EVBARM_BOARDS.armv5t+= DNS323
63 #EVBARM_BOARDS.armv5t+= HPT5325
64 #EVBARM_BOARDS.armv5t+= IMX23_OLINUXINO
65 EVBARM_BOARDS.armv5t+= KUROBOX_PRO
66 #EVBARM_BOARDS.armv5t+= MARVELL_NAS
67 #EVBARM_BOARDS.armv5t+= MMNET_GENERIC
68 EVBARM_BOARDS.armv5t+= MV2120
69 #EVBARM_BOARDS.armv5t+= OPENBLOCKS_A6
70 EVBARM_BOARDS.armv5t+= OPENRD
71 #EVBARM_BOARDS.armv5t+= OSK5912
72 EVBARM_BOARDS.armv5t+= SHEEVAPLUG
73
74 #EVBARM_BOARDS.armv6+= IMX31LITE
75 #EVBARM_BOARDS.armv6hf+= IMX31LITE
76 EVBARM_BOARDS.armv6+= RPI
77 EVBARM_BOARDS.armv6hf+= RPI
78 KERNEL_SETS.armv6+= RPI2
79 KERNEL_SETS.armv6hf+= RPI2
80 EVBARM_BOARDS.armv6+= TISDP2420
81 EVBARM_BOARDS.armv6hf+= TISDP2420
82 #EVBARM_BOARDS.armv6+= TISDP2430
83
84 KERNEL_SETS.armv7+= GENERIC
85 KERNEL_SETS.armv7hf+= GENERIC
86 KERNEL_SETS.arm64+= GENERIC64
87 .endif
88
89 IMAGE.rel= ${RELEASEDIR}/${RELEASEMACHINEDIR}
90 IMAGE.dir= ${IMAGE.rel}/binary/gzimg
91 IMAGE.kern= ${IMAGE.rel}/binary/kernel
92 IMAGE.instk= ${IMAGE.rel}/installation/instkernel
93
94 __mkimage: .USE
95 TOOL_MAKE=${MAKE} \
96 TOOL_MAKEFS=${TOOL_MAKEFS} \
97 TOOL_DISKLABEL=${TOOL_DISKLABEL} \
98 TOOL_FDISK=${TOOL_FDISK} \
99 TOOL_GPT=${TOOL_GPT} \
100 TOOL_GZIP=${TOOL_GZIP} \
101 TOOL_MKNOD=${TOOL_MKNOD} \
102 TOOL_PAX=${TOOL_PAX} \
103 TOOL_MKUBOOTIMAGE=${TOOL_MKUBOOTIMAGE} \
104 TOOL_MTREE=${TOOL_MTREE} \
105 HOST_SH=${HOST_SH} \
106 KERNOBJDIR=${KERNOBJDIR} \
107 MACHINE=${MACHINE} \
108 MKDTB=${MKDTB} \
109 ${HOST_SH} ${MKIMAGE} -x -h ${.TARGET:S/smp_//} -D ${DESTDIR} \
110 -S ${NETBSDSRCDIR} -B ${IMAGEENDIAN} ${MKI_OPTS.${.TARGET}} \
111 ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz
112
113 ARCHES.earmv4= armv4
114 ARCHES.earmv4eb= armv4
115 ARCHES.earmv5= xscale armv5t
116 ARCHES.earmv5eb= xscale armv5t
117 ARCHES.earmv6= armv6
118 ARCHES.earmv6hf= armv6hf
119 ARCHES.earmv6eb= armv6
120 ARCHES.earmv6hfeb= armv6hf
121 ARCHES.earmv7= armv7
122 ARCHES.earmv7hf= armv7hf
123 ARCHES.earmv7eb= armv7
124 ARCHES.earmv7hfeb= armv7hf
125 ARCHES.aarch64= arm64
126 ARCHES.aarch64eb= arm64
127 .for arch in ${ARCHES.${MACHINE_ARCH}}
128 .for board in ${EVBARM_BOARDS.${arch}}
129 KERNEL_SETS+= ${board}
130 BUILD_KERNELS+= ${board}_INSTALL
131 .endfor
132 KERNEL_SETS+= ${KERNEL_SETS.${arch}}
133 .endfor
134
135 .if !empty(MACHINE_ARCH:Maarch64*)
136 smp_efibootaa64:
137 cd ${KERNSRCDIR}/stand/efiboot/bootaa64 && ${MAKE} release
138 SNAP_MD_POST_DEPS+= smp_efibootaa64
139 INSTALLATION_DIRS+= installation/misc
140 .endif
141
142 .if !empty(MACHINE_ARCH:Mearmv7hf)
143 smp_efibootarm:
144 cd ${KERNSRCDIR}/stand/efiboot/bootarm && ${MAKE} release
145 SNAP_MD_POST_DEPS+= smp_efibootarm
146 INSTALLATION_DIRS+= installation/misc
147 .endif
148
149 .if !empty(MACHINE_ARCH:M*armv7*) && empty(ALL_KERNELS)
150 smp_armv7: __mkimage
151 MKI_OPTS.smp_armv7= -K ${IMAGE.kern}
152 SNAP_MD_POST_DEPS+= smp_armv7
153 .endif
154
155 .if !empty(MACHINE_ARCH:Maarch64*) && empty(ALL_KERNELS)
156 smp_arm64: __mkimage
157 MKI_OPTS.smp_arm64= -K ${IMAGE.kern}
158 SNAP_MD_POST_DEPS+= smp_arm64
159 smp_arm64mbr: __mkimage
160 MKI_OPTS.smp_arm64mbr= -K ${IMAGE.kern}
161 SNAP_MD_POST_DEPS+= smp_arm64mbr
162 .endif
163
164 .if !empty(KERNEL_SETS:MRPI)
165 smp_rpi: __mkimage
166 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI)
167 MKI_OPTS.smp_rpi= -K ${IMAGE.kern}/netbsd-RPI.img.gz
168 SNAP_MD_POST_DEPS+= smp_rpi
169 .endif
170 smp_rpi_inst: ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz __mkimage
171 .if empty(ALL_KERNELS) || !empty(ALL_KERNELS:MRPI_INSTALL)
172 MKI_OPTS.smp_rpi_inst= -b -K ${IMAGE.instk}/netbsd-RPI_INSTALL.img.gz
173 SNAP_MD_POST_DEPS+= smp_rpi_inst
174 .endif
175 .endif
176
177 snap_md_post: check_DESTDIR check_RELEASEDIR snap_post .WAIT ${SNAP_MD_POST_DEPS}
178
179 .if !empty(MACHINE_ARCH:Maarch64*)
180 KERNEL_SUFFIXES= img
181 .else
182 KERNEL_SUFFIXES= bin img srec ub
183 .endif
184
185 INSTALLATION_DIRS+= binary/gzimg \
186 installation/instkernel
187