blob: 6fa2d0820c552115c0fece920db87b47ee5b1274 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "Universal Boot Loader for embedded devices"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002PROVIDES = "virtual/bootloader"
3
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004PACKAGE_ARCH = "${MACHINE_ARCH}"
5
Brad Bishop19323692019-04-05 15:28:33 -04006DEPENDS += "kern-tools-native"
7
Andrew Geissler82c905d2020-04-13 13:39:40 -05008inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1 python3native
Patrick Williamsc124f4f2015-09-15 14:41:29 -05009
Andrew Geissler82c905d2020-04-13 13:39:40 -050010DEPENDS += "swig-native"
Brad Bishopd5ae7d92018-06-14 09:52:03 -070011
Patrick Williamsc124f4f2015-09-15 14:41:29 -050012EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
13EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
Andrew Geissler82c905d2020-04-13 13:39:40 -050014EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015
16PACKAGECONFIG ??= "openssl"
17# u-boot will compile its own tools during the build, with specific
18# configurations (aka when CONFIG_FIT_SIGNATURE is enabled) openssl is needed as
19# a host build dependency.
20PACKAGECONFIG[openssl] = ",,openssl-native"
21
22# Allow setting an additional version string that will be picked up by the
23# u-boot build system and appended to the u-boot version. If the .scmversion
24# file already exists it will not be overwritten.
25UBOOT_LOCALVERSION ?= ""
26
27# Some versions of u-boot use .bin and others use .img. By default use .bin
28# but enable individual recipes to change this value.
29UBOOT_SUFFIX ??= "bin"
30UBOOT_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031UBOOT_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_SUFFIX}"
32UBOOT_MAKE_TARGET ?= "all"
33
34# Output the ELF generated. Some platforms can use the ELF file and directly
35# load it (JTAG booting, QEMU) additionally the ELF can be used for debugging
36# purposes.
37UBOOT_ELF ?= ""
38UBOOT_ELF_SUFFIX ?= "elf"
39UBOOT_ELF_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}"
40UBOOT_ELF_BINARY ?= "u-boot.${UBOOT_ELF_SUFFIX}"
41UBOOT_ELF_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_ELF_SUFFIX}"
42
43# Some versions of u-boot build an SPL (Second Program Loader) image that
44# should be packaged along with the u-boot binary as well as placed in the
45# deploy directory. For those versions they can set the following variables
46# to allow packaging the SPL.
47SPL_BINARY ?= ""
Brad Bishop6e60e8b2018-02-01 10:27:11 -050048SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050049SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
50SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050051
52# Additional environment variables or a script can be installed alongside
53# u-boot to be used automatically on boot. This file, typically 'uEnv.txt'
54# or 'boot.scr', should be packaged along with u-boot as well as placed in the
55# deploy directory. Machine configurations needing one of these files should
56# include it in the SRC_URI and set the UBOOT_ENV parameter.
57UBOOT_ENV_SUFFIX ?= "txt"
58UBOOT_ENV ?= ""
59UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
60UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
61UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
62
Andrew Geissler4ed12e12020-06-05 18:00:41 -050063# Default name of u-boot initial env, but enable individual recipes to change
64# this value.
65UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
66
Patrick Williamsc0f7c042017-02-23 20:41:17 -060067# U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
68# to find EXTLINUX conf file.
69UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
70UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf"
71UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}"
72
Brad Bishop19323692019-04-05 15:28:33 -040073# returns all the elements from the src uri that are .cfg files
74def find_cfgs(d):
75 sources=src_patches(d, True)
76 sources_list=[]
77 for s in sources:
78 if s.endswith('.cfg'):
79 sources_list.append(s)
80
81 return sources_list
82
83do_configure () {
84 if [ -z "${UBOOT_CONFIG}" ]; then
85 if [ -n "${UBOOT_MACHINE}" ]; then
86 oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
87 else
88 oe_runmake -C ${S} O=${B} oldconfig
89 fi
90 merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
91 cml1_do_configure
Andrew Geissler82c905d2020-04-13 13:39:40 -050092 else
93 DEVTOOL_DISABLE_MENUCONFIG=true
Brad Bishop19323692019-04-05 15:28:33 -040094 fi
95}
96
Patrick Williamsc124f4f2015-09-15 14:41:29 -050097do_compile () {
Andrew Geissler4ed12e12020-06-05 18:00:41 -050098 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
99 sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
100 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500101
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500102 unset LDFLAGS
103 unset CFLAGS
104 unset CPPFLAGS
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500105
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500106 if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
107 then
108 echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
109 echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
110 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600111
112 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500113 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600114 unset i j k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500115 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600116 i=$(expr $i + 1);
117 for type in ${UBOOT_CONFIG}; do
118 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500119 if [ $j -eq $i ]
120 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600121 oe_runmake -C ${S} O=${B}/${config} ${config}
122 oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET}
123 for binary in ${UBOOT_BINARIES}; do
124 k=$(expr $k + 1);
125 if [ $k -eq $i ]; then
126 cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
127 fi
128 done
Andrew Geissler82c905d2020-04-13 13:39:40 -0500129
130 # Generate the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500131 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
132 oe_runmake -C ${S} O=${B}/${config} u-boot-initial-env
133 cp ${B}/${config}/u-boot-initial-env ${B}/${config}/u-boot-initial-env-${type}
134 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500135
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600136 unset k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500137 fi
138 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500139 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500140 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500141 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500142 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600143 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500144
145 # Generate the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500146 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
147 oe_runmake -C ${S} O=${B} u-boot-initial-env
148 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500149 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500150}
151
152do_install () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600153 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500154 then
155 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600156 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500157 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600158 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500159 if [ $j -eq $i ]
160 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500161 install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500162 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
163 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500164
165 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500166 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
167 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
168 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
169 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
170 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
171 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500172 fi
173 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500174 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500175 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500176 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500177 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500178 install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500179 ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500180
181 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500182 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
183 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
184 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
185 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
186 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500187 fi
188
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600189 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500190 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600191 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500192 then
193 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600194 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500195 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600196 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500197 if [ $j -eq $i ]
198 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600199 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500200 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
201 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
202 fi
203 done
204 unset j
205 done
206 unset i
207 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600208 install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500209 ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
210 fi
211 fi
212
213 if [ -e ${WORKDIR}/fw_env.config ] ; then
214 install -d ${D}${sysconfdir}
215 install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
216 fi
217
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600218 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500219 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600220 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500221 then
222 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600223 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500224 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600225 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500226 if [ $j -eq $i ]
227 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600228 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500229 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}-${type}
230 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500231 fi
232 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500233 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500234 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500235 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500236 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600237 install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500238 ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500239 fi
240 fi
241
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600242 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500243 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600244 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500245 ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
246 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600247
248 if [ "${UBOOT_EXTLINUX}" = "1" ]
249 then
250 install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
251 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500252}
253
Andrew Geissler82c905d2020-04-13 13:39:40 -0500254PACKAGE_BEFORE_PN += "${PN}-env"
255
256RPROVIDES_${PN}-env += "u-boot-default-env"
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500257ALLOW_EMPTY_${PN}-env = "1"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500258FILES_${PN}-env = " \
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500259 ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500260 ${sysconfdir}/fw_env.config \
261"
262
263FILES_${PN} = "/boot ${datadir}"
264RDEPENDS_${PN} += "${PN}-env"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500265
266do_deploy () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600267 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500268 then
269 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600270 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500271 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600272 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500273 if [ $j -eq $i ]
274 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500275 install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500276 cd ${DEPLOYDIR}
277 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
278 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
279 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
280 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500281
282 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500283 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
284 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
285 cd ${DEPLOYDIR}
286 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
287 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type}
288 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600289 fi
290 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500291 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500292 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500293 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500294 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500295 install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
296
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500297 cd ${DEPLOYDIR}
298 rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
299 ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
300 ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500301
302 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500303 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
304 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
305 cd ${DEPLOYDIR}
306 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}
307 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}
308 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500309 fi
310
311 if [ -e ${WORKDIR}/fw_env.config ] ; then
312 install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR}
313 cd ${DEPLOYDIR}
314 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE}
315 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800316 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500317
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600318 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500319 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600320 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500321 then
322 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600323 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500324 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600325 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500326 if [ $j -eq $i ]
327 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600328 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500329 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
330 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
331 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
332 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
333 fi
334 done
335 unset j
336 done
337 unset i
338 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600339 install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500340 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
341 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
342 fi
343 fi
344
345
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600346 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500347 then
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800348 if [ -n "${UBOOT_CONFIG}" ]
349 then
350 for config in ${UBOOT_MACHINE}; do
351 i=$(expr $i + 1);
352 for type in ${UBOOT_CONFIG}; do
353 j=$(expr $j + 1);
354 if [ $j -eq $i ]
355 then
356 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
357 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
358 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}
359 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}
360 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
361 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
362 fi
363 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500364 unset j
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800365 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500366 unset i
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800367 else
368 install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
369 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}
370 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME}
371 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
372 fi
373 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500374
375
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600376 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500377 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600378 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500379 rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
380 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
381 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
382 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600383
384 if [ "${UBOOT_EXTLINUX}" = "1" ]
385 then
386 install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_SYMLINK}
387 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}
388 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
389 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500390}
391
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500392addtask deploy before do_build after do_compile