blob: c91da0295943592ad96f74808291ca5664d4f4d9 [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 () {
Andrew Geissler5a43b432020-06-13 10:46:56 -050084 if [ -n "${UBOOT_CONFIG}" ]; then
85 unset i j
86 for config in ${UBOOT_MACHINE}; do
87 i=$(expr $i + 1);
88 for type in ${UBOOT_CONFIG}; do
89 j=$(expr $j + 1);
90 if [ $j -eq $i ]; then
91 oe_runmake -C ${S} O=${B}/${config} ${config}
Andrew Geisslerd25ed322020-06-27 00:28:28 -050092 if [ test -n "${@' '.join(find_cfgs(d))}" ]; then
93 merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))}
94 oe_runmake -C ${S} O=${B}/${config} oldconfig
95 fi
Andrew Geissler5a43b432020-06-13 10:46:56 -050096 fi
97 done
98 unset j
99 done
100 unset i
101 DEVTOOL_DISABLE_MENUCONFIG=true
102 else
Brad Bishop19323692019-04-05 15:28:33 -0400103 if [ -n "${UBOOT_MACHINE}" ]; then
104 oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
105 else
106 oe_runmake -C ${S} O=${B} oldconfig
107 fi
108 merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
109 cml1_do_configure
110 fi
111}
112
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500113do_compile () {
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500114 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
115 sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
116 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500117
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500118 unset LDFLAGS
119 unset CFLAGS
120 unset CPPFLAGS
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500121
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500122 if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
123 then
124 echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
125 echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
126 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600127
Andrew Geisslerd25ed322020-06-27 00:28:28 -0500128 if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500129 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600130 unset i j k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500131 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600132 i=$(expr $i + 1);
133 for type in ${UBOOT_CONFIG}; do
134 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500135 if [ $j -eq $i ]
136 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600137 oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET}
138 for binary in ${UBOOT_BINARIES}; do
139 k=$(expr $k + 1);
140 if [ $k -eq $i ]; then
141 cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
142 fi
143 done
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}/${config} u-boot-initial-env
148 cp ${B}/${config}/u-boot-initial-env ${B}/${config}/u-boot-initial-env-${type}
149 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500150
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600151 unset k
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500152 fi
153 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500154 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500155 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500156 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500157 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600158 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500159
160 # Generate the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500161 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
162 oe_runmake -C ${S} O=${B} u-boot-initial-env
163 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500164 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500165}
166
167do_install () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600168 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500169 then
170 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600171 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500172 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600173 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500174 if [ $j -eq $i ]
175 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500176 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 -0500177 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
178 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500179
180 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500181 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
182 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
183 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
184 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
185 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
186 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500187 fi
188 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500189 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500190 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500191 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500192 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500193 install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500194 ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500195
196 # Install the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500197 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
198 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
199 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
200 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
201 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500202 fi
203
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600204 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500205 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600206 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500207 then
208 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600209 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500210 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600211 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500212 if [ $j -eq $i ]
213 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600214 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500215 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
216 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
217 fi
218 done
219 unset j
220 done
221 unset i
222 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600223 install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500224 ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
225 fi
226 fi
227
228 if [ -e ${WORKDIR}/fw_env.config ] ; then
229 install -d ${D}${sysconfdir}
230 install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
231 fi
232
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600233 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500234 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600235 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500236 then
237 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600238 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500239 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600240 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500241 if [ $j -eq $i ]
242 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600243 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500244 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}-${type}
245 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500246 fi
247 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500248 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500249 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500250 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500251 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600252 install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500253 ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500254 fi
255 fi
256
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600257 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600259 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500260 ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
261 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600262
263 if [ "${UBOOT_EXTLINUX}" = "1" ]
264 then
265 install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
266 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500267}
268
Andrew Geissler82c905d2020-04-13 13:39:40 -0500269PACKAGE_BEFORE_PN += "${PN}-env"
270
271RPROVIDES_${PN}-env += "u-boot-default-env"
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500272ALLOW_EMPTY_${PN}-env = "1"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500273FILES_${PN}-env = " \
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500274 ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \
Andrew Geissler82c905d2020-04-13 13:39:40 -0500275 ${sysconfdir}/fw_env.config \
276"
277
278FILES_${PN} = "/boot ${datadir}"
279RDEPENDS_${PN} += "${PN}-env"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500280
281do_deploy () {
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600282 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500283 then
284 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600285 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500286 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600287 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500288 if [ $j -eq $i ]
289 then
Andrew Geissler82c905d2020-04-13 13:39:40 -0500290 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 -0500291 cd ${DEPLOYDIR}
292 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
293 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
294 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
295 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500296
297 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500298 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
299 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
300 cd ${DEPLOYDIR}
301 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
302 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type}
303 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600304 fi
305 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500306 unset j
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500307 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500308 unset i
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500309 else
Andrew Geissler82c905d2020-04-13 13:39:40 -0500310 install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
311
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500312 cd ${DEPLOYDIR}
313 rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
314 ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
315 ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
Andrew Geissler82c905d2020-04-13 13:39:40 -0500316
317 # Deploy the uboot-initial-env
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500318 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
319 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
320 cd ${DEPLOYDIR}
321 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}
322 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}
323 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500324 fi
325
326 if [ -e ${WORKDIR}/fw_env.config ] ; then
327 install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR}
328 cd ${DEPLOYDIR}
329 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE}
330 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800331 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500332
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600333 if [ -n "${UBOOT_ELF}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500334 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600335 if [ -n "${UBOOT_CONFIG}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500336 then
337 for config in ${UBOOT_MACHINE}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600338 i=$(expr $i + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500339 for type in ${UBOOT_CONFIG}; do
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600340 j=$(expr $j + 1);
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500341 if [ $j -eq $i ]
342 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600343 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500344 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
345 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
346 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
347 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
348 fi
349 done
350 unset j
351 done
352 unset i
353 else
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600354 install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500355 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
356 ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
357 fi
358 fi
359
360
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600361 if [ -n "${SPL_BINARY}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500362 then
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800363 if [ -n "${UBOOT_CONFIG}" ]
364 then
365 for config in ${UBOOT_MACHINE}; do
366 i=$(expr $i + 1);
367 for type in ${UBOOT_CONFIG}; do
368 j=$(expr $j + 1);
369 if [ $j -eq $i ]
370 then
371 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
372 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
373 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}
374 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}
375 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
376 ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
377 fi
378 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500379 unset j
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800380 done
Andrew Geissler4ed12e12020-06-05 18:00:41 -0500381 unset i
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800382 else
383 install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
384 rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}
385 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME}
386 ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
387 fi
388 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500389
390
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600391 if [ -n "${UBOOT_ENV}" ]
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500392 then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600393 install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500394 rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
395 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
396 ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
397 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600398
399 if [ "${UBOOT_EXTLINUX}" = "1" ]
400 then
401 install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_SYMLINK}
402 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}
403 ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
404 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500405}
406
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500407addtask deploy before do_build after do_compile