blob: 251178db33769f24bd1ab0d4b7e2dcb9fdcdcd1b [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 -040073do_configure () {
Andrew Geissler5a43b432020-06-13 10:46:56 -050074 if [ -n "${UBOOT_CONFIG}" ]; then
75 unset i j
76 for config in ${UBOOT_MACHINE}; do
77 i=$(expr $i + 1);
78 for type in ${UBOOT_CONFIG}; do
79 j=$(expr $j + 1);
80 if [ $j -eq $i ]; then
81 oe_runmake -C ${S} O=${B}/${config} ${config}
Andrew Geisslerb7d28612020-07-24 16:15:54 -050082 if [ -n "${@' '.join(find_cfgs(d))}" ]; then
Andrew Geisslerd25ed322020-06-27 00:28:28 -050083 merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))}
84 oe_runmake -C ${S} O=${B}/${config} oldconfig
85 fi
Andrew Geissler5a43b432020-06-13 10:46:56 -050086 fi
87 done
88 unset j
89 done
90 unset i
91 DEVTOOL_DISABLE_MENUCONFIG=true
92 else
Brad Bishop19323692019-04-05 15:28:33 -040093 if [ -n "${UBOOT_MACHINE}" ]; then
94 oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
95 else
96 oe_runmake -C ${S} O=${B} oldconfig
97 fi
98 merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
99 cml1_do_configure
100 fi
101}
102
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500103do_compile () {
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500104 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
105 sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
106 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500107
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500108 unset LDFLAGS
109 unset CFLAGS
110 unset CPPFLAGS
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500111
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500112 if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
113 then
114 echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
115 echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
116 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600117
Andrew Geisslerd25ed322020-06-27 00:28:28 -0500118 if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500119 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600120 unset i j k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500121 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600122 i=$(expr $i + 1);
123 for type in ${UBOOT_CONFIG}; do
124 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500125 if [ $j -eq $i ]
126 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600127 oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET}
128 for binary in ${UBOOT_BINARIES}; do
129 k=$(expr $k + 1);
130 if [ $k -eq $i ]; then
131 cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
132 fi
133 done
Andrew Geissler82c905d2020-04-13 13:39:40 -0500134
135 # Generate the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500136 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
137 oe_runmake -C ${S} O=${B}/${config} u-boot-initial-env
138 cp ${B}/${config}/u-boot-initial-env ${B}/${config}/u-boot-initial-env-${type}
139 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500140
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600141 unset k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500142 fi
143 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500144 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500145 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500146 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500147 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600148 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500149
150 # Generate the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500151 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
152 oe_runmake -C ${S} O=${B} u-boot-initial-env
153 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500154 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500155}
156
157do_install () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600158 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500159 then
160 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600161 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500162 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600163 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500164 if [ $j -eq $i ]
165 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500166 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 -0500167 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
168 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500169
170 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500171 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
172 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
173 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
174 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
175 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
176 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500177 fi
178 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500179 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500180 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500181 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500182 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500183 install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500184 ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500185
186 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500187 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
188 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
189 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
190 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
191 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500192 fi
193
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600194 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500195 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600196 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500197 then
198 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600199 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500200 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600201 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500202 if [ $j -eq $i ]
203 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600204 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500205 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
206 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
207 fi
208 done
209 unset j
210 done
211 unset i
212 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600213 install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500214 ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
215 fi
216 fi
217
218 if [ -e ${WORKDIR}/fw_env.config ] ; then
219 install -d ${D}${sysconfdir}
220 install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
221 fi
222
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600223 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500224 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600225 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500226 then
227 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600228 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500229 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600230 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500231 if [ $j -eq $i ]
232 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600233 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500234 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}-${type}
235 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500236 fi
237 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500238 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500239 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500240 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500241 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600242 install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500243 ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500244 fi
245 fi
246
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600247 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500248 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600249 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500250 ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
251 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600252
253 if [ "${UBOOT_EXTLINUX}" = "1" ]
254 then
255 install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
256 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500257}
258
Andrew Geissler82c905d2020-04-13 13:39:40 -0500259PACKAGE_BEFORE_PN += "${PN}-env"
260
261RPROVIDES_${PN}-env += "u-boot-default-env"
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500262ALLOW_EMPTY_${PN}-env = "1"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500263FILES_${PN}-env = " \
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500264 ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500265 ${sysconfdir}/fw_env.config \
266"
267
268FILES_${PN} = "/boot ${datadir}"
269RDEPENDS_${PN} += "${PN}-env"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500270
271do_deploy () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600272 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500273 then
274 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600275 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500276 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600277 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500278 if [ $j -eq $i ]
279 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500280 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 -0500281 cd ${DEPLOYDIR}
282 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
283 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
284 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
285 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500286
287 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500288 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
289 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
290 cd ${DEPLOYDIR}
291 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
292 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type}
293 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600294 fi
295 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500296 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500297 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500298 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500299 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500300 install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
301
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500302 cd ${DEPLOYDIR}
303 rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
304 ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
305 ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500306
307 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500308 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
309 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
310 cd ${DEPLOYDIR}
311 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}
312 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}
313 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500314 fi
315
316 if [ -e ${WORKDIR}/fw_env.config ] ; then
317 install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR}
318 cd ${DEPLOYDIR}
319 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE}
320 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800321 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500322
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600323 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500324 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600325 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500326 then
327 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600328 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500329 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600330 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500331 if [ $j -eq $i ]
332 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600333 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500334 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
335 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
336 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
337 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
338 fi
339 done
340 unset j
341 done
342 unset i
343 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600344 install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500345 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
346 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
347 fi
348 fi
349
350
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600351 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500352 then
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800353 if [ -n "${UBOOT_CONFIG}" ]
354 then
355 for config in ${UBOOT_MACHINE}; do
356 i=$(expr $i + 1);
357 for type in ${UBOOT_CONFIG}; do
358 j=$(expr $j + 1);
359 if [ $j -eq $i ]
360 then
361 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
362 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
363 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}
364 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}
365 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
366 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
367 fi
368 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500369 unset j
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800370 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500371 unset i
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800372 else
373 install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
374 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}
375 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME}
376 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
377 fi
378 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500379
380
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600381 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500382 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600383 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500384 rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
385 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
386 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
387 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600388
389 if [ "${UBOOT_EXTLINUX}" = "1" ]
390 then
391 install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_SYMLINK}
392 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}
393 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
394 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500395}
396
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500397addtask deploy before do_build after do_compile