diff options
Diffstat (limited to 'meta/recipes-bsp/u-boot/u-boot.inc')
-rw-r--r-- | meta/recipes-bsp/u-boot/u-boot.inc | 410 |
1 files changed, 219 insertions, 191 deletions
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 251178db33..b7242de5de 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc | |||
@@ -3,13 +3,14 @@ PROVIDES = "virtual/bootloader" | |||
3 | 3 | ||
4 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 4 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
5 | 5 | ||
6 | DEPENDS += "kern-tools-native" | 6 | DEPENDS += "${@bb.utils.contains('UBOOT_ENV_SUFFIX', 'scr', 'u-boot-mkimage-native', '', d)}" |
7 | 7 | ||
8 | inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1 python3native | 8 | inherit uboot-config uboot-extlinux-config uboot-sign deploy python3native kernel-arch |
9 | 9 | ||
10 | DEPENDS += "swig-native" | 10 | DEPENDS += "swig-native" |
11 | 11 | ||
12 | EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1' | 12 | EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} V=1' |
13 | EXTRA_OEMAKE += 'CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP}"' | ||
13 | EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' | 14 | EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' |
14 | EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}' | 15 | EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}' |
15 | 16 | ||
@@ -19,92 +20,21 @@ PACKAGECONFIG ??= "openssl" | |||
19 | # a host build dependency. | 20 | # a host build dependency. |
20 | PACKAGECONFIG[openssl] = ",,openssl-native" | 21 | PACKAGECONFIG[openssl] = ",,openssl-native" |
21 | 22 | ||
23 | CVE_PRODUCT = "denx:u-boot" | ||
24 | |||
22 | # Allow setting an additional version string that will be picked up by the | 25 | # 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 | 26 | # u-boot build system and appended to the u-boot version. If the .scmversion |
24 | # file already exists it will not be overwritten. | 27 | # file already exists it will not be overwritten. |
25 | UBOOT_LOCALVERSION ?= "" | 28 | UBOOT_LOCALVERSION ?= "" |
26 | 29 | ||
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. | ||
29 | UBOOT_SUFFIX ??= "bin" | ||
30 | UBOOT_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}" | ||
31 | UBOOT_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_SUFFIX}" | ||
32 | UBOOT_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. | ||
37 | UBOOT_ELF ?= "" | ||
38 | UBOOT_ELF_SUFFIX ?= "elf" | ||
39 | UBOOT_ELF_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}" | ||
40 | UBOOT_ELF_BINARY ?= "u-boot.${UBOOT_ELF_SUFFIX}" | ||
41 | UBOOT_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. | ||
47 | SPL_BINARY ?= "" | ||
48 | SPL_BINARYNAME ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}" | ||
49 | SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}" | ||
50 | SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}" | ||
51 | |||
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. | ||
57 | UBOOT_ENV_SUFFIX ?= "txt" | ||
58 | UBOOT_ENV ?= "" | ||
59 | UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}" | ||
60 | UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}" | ||
61 | UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}" | ||
62 | |||
63 | # Default name of u-boot initial env, but enable individual recipes to change | 30 | # Default name of u-boot initial env, but enable individual recipes to change |
64 | # this value. | 31 | # this value. |
65 | UBOOT_INITIAL_ENV ?= "${PN}-initial-env" | 32 | UBOOT_INITIAL_ENV ?= "${PN}-initial-env" |
66 | 33 | ||
67 | # U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf | 34 | require u-boot-configure.inc |
68 | # to find EXTLINUX conf file. | ||
69 | UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux" | ||
70 | UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf" | ||
71 | UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}" | ||
72 | |||
73 | do_configure () { | ||
74 | 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} | ||
82 | if [ -n "${@' '.join(find_cfgs(d))}" ]; then | ||
83 | 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 | ||
86 | fi | ||
87 | done | ||
88 | unset j | ||
89 | done | ||
90 | unset i | ||
91 | DEVTOOL_DISABLE_MENUCONFIG=true | ||
92 | else | ||
93 | 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 | 35 | ||
36 | UBOOT_ARCH_DIR = "${@'arm' if d.getVar('UBOOT_ARCH').startswith('arm') else d.getVar('UBOOT_ARCH')}" | ||
103 | do_compile () { | 37 | do_compile () { |
104 | 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 | ||
107 | |||
108 | unset LDFLAGS | 38 | unset LDFLAGS |
109 | unset CFLAGS | 39 | unset CFLAGS |
110 | unset CPPFLAGS | 40 | unset CPPFLAGS |
@@ -117,40 +47,66 @@ do_compile () { | |||
117 | 47 | ||
118 | if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ] | 48 | if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ] |
119 | then | 49 | then |
120 | unset i j k | 50 | unset i j |
121 | for config in ${UBOOT_MACHINE}; do | 51 | for config in ${UBOOT_MACHINE}; do |
122 | i=$(expr $i + 1); | 52 | i=$(expr $i + 1); |
123 | for type in ${UBOOT_CONFIG}; do | 53 | for type in ${UBOOT_CONFIG}; do |
124 | j=$(expr $j + 1); | 54 | j=$(expr $j + 1); |
125 | if [ $j -eq $i ] | 55 | if [ $j -eq $i ] |
126 | then | 56 | then |
127 | oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET} | 57 | uboot_compile_config $i $config $type |
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 | ||
134 | |||
135 | # Generate the uboot-initial-env | ||
136 | 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 | ||
140 | |||
141 | unset k | ||
142 | fi | 58 | fi |
143 | done | 59 | done |
144 | unset j | 60 | unset j |
145 | done | 61 | done |
146 | unset i | 62 | unset i |
147 | else | 63 | else |
148 | oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET} | 64 | uboot_compile |
65 | fi | ||
66 | |||
67 | if [ -n "${UBOOT_ENV}" ] && [ "${UBOOT_ENV_SUFFIX}" = "scr" ] | ||
68 | then | ||
69 | ${UBOOT_MKIMAGE} -C none -A ${UBOOT_ARCH} -T script -d ${UNPACKDIR}/${UBOOT_ENV_SRC} ${B}/${UBOOT_ENV_BINARY} | ||
70 | fi | ||
71 | } | ||
72 | |||
73 | uboot_compile_config () { | ||
74 | i=$1 | ||
75 | config=$2 | ||
76 | type=$3 | ||
149 | 77 | ||
150 | # Generate the uboot-initial-env | 78 | oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET} |
151 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | 79 | |
152 | oe_runmake -C ${S} O=${B} u-boot-initial-env | 80 | unset k |
81 | for binary in ${UBOOT_BINARIES}; do | ||
82 | k=$(expr $k + 1); | ||
83 | if [ $k -eq $i ]; then | ||
84 | uboot_compile_config_copy_binary $config $type $binary | ||
153 | fi | 85 | fi |
86 | done | ||
87 | unset k | ||
88 | |||
89 | # Generate the uboot-initial-env | ||
90 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | ||
91 | oe_runmake -C ${S} O=${B}/${config} u-boot-initial-env | ||
92 | cp ${B}/${config}/u-boot-initial-env ${B}/${config}/u-boot-initial-env-${type} | ||
93 | fi | ||
94 | } | ||
95 | |||
96 | uboot_compile_config_copy_binary () { | ||
97 | config=$1 | ||
98 | type=$2 | ||
99 | binary=$3 | ||
100 | |||
101 | cp ${B}/${config}/${binary} ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} | ||
102 | } | ||
103 | |||
104 | uboot_compile () { | ||
105 | oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET} | ||
106 | |||
107 | # Generate the uboot-initial-env | ||
108 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | ||
109 | oe_runmake -C ${S} O=${B} u-boot-initial-env | ||
154 | fi | 110 | fi |
155 | } | 111 | } |
156 | 112 | ||
@@ -163,32 +119,14 @@ do_install () { | |||
163 | j=$(expr $j + 1); | 119 | j=$(expr $j + 1); |
164 | if [ $j -eq $i ] | 120 | if [ $j -eq $i ] |
165 | then | 121 | then |
166 | install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} | 122 | uboot_install_config $config $type |
167 | 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} | ||
169 | |||
170 | # Install the uboot-initial-env | ||
171 | 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 | ||
177 | fi | 123 | fi |
178 | done | 124 | done |
179 | unset j | 125 | unset j |
180 | done | 126 | done |
181 | unset i | 127 | unset i |
182 | else | 128 | else |
183 | install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE} | 129 | uboot_install |
184 | ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY} | ||
185 | |||
186 | # Install the uboot-initial-env | ||
187 | 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 | ||
192 | fi | 130 | fi |
193 | 131 | ||
194 | if [ -n "${UBOOT_ELF}" ] | 132 | if [ -n "${UBOOT_ELF}" ] |
@@ -201,23 +139,20 @@ do_install () { | |||
201 | j=$(expr $j + 1); | 139 | j=$(expr $j + 1); |
202 | if [ $j -eq $i ] | 140 | if [ $j -eq $i ] |
203 | then | 141 | then |
204 | install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} | 142 | uboot_install_elf_config $config $type |
205 | 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 | 143 | fi |
208 | done | 144 | done |
209 | unset j | 145 | unset j |
210 | done | 146 | done |
211 | unset i | 147 | unset i |
212 | else | 148 | else |
213 | install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE} | 149 | uboot_install_elf |
214 | ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY} | ||
215 | fi | 150 | fi |
216 | fi | 151 | fi |
217 | 152 | ||
218 | if [ -e ${WORKDIR}/fw_env.config ] ; then | 153 | if [ -e ${UNPACKDIR}/fw_env.config ] ; then |
219 | install -d ${D}${sysconfdir} | 154 | install -d ${D}${sysconfdir} |
220 | install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config | 155 | install -m 644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config |
221 | fi | 156 | fi |
222 | 157 | ||
223 | if [ -n "${SPL_BINARY}" ] | 158 | if [ -n "${SPL_BINARY}" ] |
@@ -230,23 +165,20 @@ do_install () { | |||
230 | j=$(expr $j + 1); | 165 | j=$(expr $j + 1); |
231 | if [ $j -eq $i ] | 166 | if [ $j -eq $i ] |
232 | then | 167 | then |
233 | install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR} | 168 | uboot_install_spl_config $config $type |
234 | ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}-${type} | ||
235 | ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME} | ||
236 | fi | 169 | fi |
237 | done | 170 | done |
238 | unset j | 171 | unset j |
239 | done | 172 | done |
240 | unset i | 173 | unset i |
241 | else | 174 | else |
242 | install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE} | 175 | uboot_install_spl |
243 | ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME} | ||
244 | fi | 176 | fi |
245 | fi | 177 | fi |
246 | 178 | ||
247 | if [ -n "${UBOOT_ENV}" ] | 179 | if [ -n "${UBOOT_ENV}" ] |
248 | then | 180 | then |
249 | install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE} | 181 | install -m 644 ${B}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE} |
250 | ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY} | 182 | ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY} |
251 | fi | 183 | fi |
252 | 184 | ||
@@ -256,68 +188,104 @@ do_install () { | |||
256 | fi | 188 | fi |
257 | } | 189 | } |
258 | 190 | ||
259 | PACKAGE_BEFORE_PN += "${PN}-env" | 191 | uboot_install_config () { |
192 | config=$1 | ||
193 | type=$2 | ||
194 | |||
195 | install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} | ||
196 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} | ||
197 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY} | ||
260 | 198 | ||
261 | RPROVIDES_${PN}-env += "u-boot-default-env" | 199 | # Install the uboot-initial-env |
262 | ALLOW_EMPTY_${PN}-env = "1" | 200 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then |
263 | FILES_${PN}-env = " \ | 201 | install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} |
202 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type} | ||
203 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type} | ||
204 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} | ||
205 | fi | ||
206 | } | ||
207 | |||
208 | uboot_install () { | ||
209 | install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE} | ||
210 | ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY} | ||
211 | |||
212 | # Install the uboot-initial-env | ||
213 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | ||
214 | install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} | ||
215 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE} | ||
216 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} | ||
217 | fi | ||
218 | } | ||
219 | |||
220 | uboot_install_elf_config () { | ||
221 | config=$1 | ||
222 | type=$2 | ||
223 | |||
224 | install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} | ||
225 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} | ||
226 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY} | ||
227 | } | ||
228 | |||
229 | uboot_install_elf () { | ||
230 | install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE} | ||
231 | ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY} | ||
232 | } | ||
233 | |||
234 | uboot_install_spl_config () { | ||
235 | config=$1 | ||
236 | type=$2 | ||
237 | |||
238 | install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} | ||
239 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type} | ||
240 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE} | ||
241 | } | ||
242 | |||
243 | uboot_install_spl () { | ||
244 | install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE} | ||
245 | ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYFILE} | ||
246 | } | ||
247 | |||
248 | PACKAGE_BEFORE_PN += "${PN}-env ${PN}-extlinux" | ||
249 | |||
250 | RPROVIDES:${PN}-env += "u-boot-default-env" | ||
251 | ALLOW_EMPTY:${PN}-env = "1" | ||
252 | FILES:${PN}-env = " \ | ||
264 | ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \ | 253 | ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \ |
265 | ${sysconfdir}/fw_env.config \ | 254 | ${sysconfdir}/fw_env.config \ |
266 | " | 255 | " |
267 | 256 | ||
268 | FILES_${PN} = "/boot ${datadir}" | 257 | FILES:${PN}-extlinux = "${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}" |
269 | RDEPENDS_${PN} += "${PN}-env" | 258 | RDEPENDS:${PN} += "${@bb.utils.contains('UBOOT_EXTLINUX', '1', '${PN}-extlinux', '', d)}" |
259 | |||
260 | SYSROOT_DIRS += "/boot" | ||
261 | FILES:${PN} = "/boot ${datadir}" | ||
262 | RDEPENDS:${PN} += "${PN}-env" | ||
270 | 263 | ||
271 | do_deploy () { | 264 | do_deploy () { |
272 | if [ -n "${UBOOT_CONFIG}" ] | 265 | if [ -n "${UBOOT_CONFIG}" ] |
273 | then | 266 | then |
267 | unset i j | ||
274 | for config in ${UBOOT_MACHINE}; do | 268 | for config in ${UBOOT_MACHINE}; do |
275 | i=$(expr $i + 1); | 269 | i=$(expr $i + 1); |
276 | for type in ${UBOOT_CONFIG}; do | 270 | for type in ${UBOOT_CONFIG}; do |
277 | j=$(expr $j + 1); | 271 | j=$(expr $j + 1); |
278 | if [ $j -eq $i ] | 272 | if [ $j -eq $i ] |
279 | then | 273 | then |
280 | install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} | 274 | uboot_deploy_config $config $type |
281 | 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} | ||
286 | |||
287 | # Deploy the uboot-initial-env | ||
288 | 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 | ||
294 | fi | 275 | fi |
295 | done | 276 | done |
296 | unset j | 277 | unset j |
297 | done | 278 | done |
298 | unset i | 279 | unset i |
299 | else | 280 | else |
300 | install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} | 281 | uboot_deploy |
301 | |||
302 | cd ${DEPLOYDIR} | ||
303 | rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK} | ||
304 | ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK} | ||
305 | ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY} | ||
306 | |||
307 | # Deploy the uboot-initial-env | ||
308 | 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 | ||
314 | fi | 282 | fi |
315 | 283 | ||
316 | if [ -e ${WORKDIR}/fw_env.config ] ; then | 284 | if [ -e ${UNPACKDIR}/fw_env.config ] ; then |
317 | install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR} | 285 | install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${UBOOT_VERSION} |
318 | cd ${DEPLOYDIR} | 286 | cd ${DEPLOYDIR} |
319 | ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE} | 287 | ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config-${MACHINE} |
320 | ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config | 288 | ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config |
321 | fi | 289 | fi |
322 | 290 | ||
323 | if [ -n "${UBOOT_ELF}" ] | 291 | if [ -n "${UBOOT_ELF}" ] |
@@ -330,24 +298,17 @@ do_deploy () { | |||
330 | j=$(expr $j + 1); | 298 | j=$(expr $j + 1); |
331 | if [ $j -eq $i ] | 299 | if [ $j -eq $i ] |
332 | then | 300 | then |
333 | install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} | 301 | uboot_deploy_elf_config $config $type |
334 | 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 | 302 | fi |
339 | done | 303 | done |
340 | unset j | 304 | unset j |
341 | done | 305 | done |
342 | unset i | 306 | unset i |
343 | else | 307 | else |
344 | install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE} | 308 | uboot_deploy_elf |
345 | ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY} | ||
346 | ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK} | ||
347 | fi | 309 | fi |
348 | fi | 310 | fi |
349 | 311 | ||
350 | |||
351 | if [ -n "${SPL_BINARY}" ] | 312 | if [ -n "${SPL_BINARY}" ] |
352 | then | 313 | then |
353 | if [ -n "${UBOOT_CONFIG}" ] | 314 | if [ -n "${UBOOT_CONFIG}" ] |
@@ -358,30 +319,20 @@ do_deploy () { | |||
358 | j=$(expr $j + 1); | 319 | j=$(expr $j + 1); |
359 | if [ $j -eq $i ] | 320 | if [ $j -eq $i ] |
360 | then | 321 | then |
361 | install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR} | 322 | uboot_deploy_spl_config $config $type |
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 | 323 | fi |
368 | done | 324 | done |
369 | unset j | 325 | unset j |
370 | done | 326 | done |
371 | unset i | 327 | unset i |
372 | else | 328 | else |
373 | install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE} | 329 | uboot_deploy_spl |
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 | 330 | fi |
378 | fi | 331 | fi |
379 | 332 | ||
380 | |||
381 | if [ -n "${UBOOT_ENV}" ] | 333 | if [ -n "${UBOOT_ENV}" ] |
382 | then | 334 | then |
383 | install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE} | 335 | install -m 644 ${B}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE} |
384 | rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK} | ||
385 | ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY} | 336 | ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY} |
386 | ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK} | 337 | ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK} |
387 | fi | 338 | fi |
@@ -392,6 +343,83 @@ do_deploy () { | |||
392 | ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE} | 343 | ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE} |
393 | ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME} | 344 | ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME} |
394 | fi | 345 | fi |
346 | |||
347 | if [ -n "${UBOOT_DTB}" ] | ||
348 | then | ||
349 | install -m 644 ${B}/arch/${UBOOT_ARCH_DIR}/dts/${UBOOT_DTB_BINARY} ${DEPLOYDIR}/ | ||
350 | fi | ||
351 | } | ||
352 | |||
353 | uboot_deploy_config () { | ||
354 | config=$1 | ||
355 | type=$2 | ||
356 | |||
357 | install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} | ||
358 | cd ${DEPLOYDIR} | ||
359 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type} | ||
360 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK} | ||
361 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type} | ||
362 | ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY} | ||
363 | |||
364 | # Deploy the uboot-initial-env | ||
365 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | ||
366 | install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} | ||
367 | cd ${DEPLOYDIR} | ||
368 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type} | ||
369 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${type} | ||
370 | fi | ||
371 | } | ||
372 | |||
373 | uboot_deploy () { | ||
374 | install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} | ||
375 | |||
376 | cd ${DEPLOYDIR} | ||
377 | rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK} | ||
378 | ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK} | ||
379 | ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY} | ||
380 | |||
381 | # Deploy the uboot-initial-env | ||
382 | if [ -n "${UBOOT_INITIAL_ENV}" ]; then | ||
383 | install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} | ||
384 | cd ${DEPLOYDIR} | ||
385 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE} | ||
386 | ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV} | ||
387 | fi | ||
388 | } | ||
389 | |||
390 | uboot_deploy_elf_config () { | ||
391 | config=$1 | ||
392 | type=$2 | ||
393 | |||
394 | install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} | ||
395 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type} | ||
396 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY} | ||
397 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type} | ||
398 | ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK} | ||
399 | } | ||
400 | |||
401 | uboot_deploy_elf () { | ||
402 | install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE} | ||
403 | ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY} | ||
404 | ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK} | ||
405 | } | ||
406 | |||
407 | uboot_deploy_spl_config () { | ||
408 | config=$1 | ||
409 | type=$2 | ||
410 | |||
411 | install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} | ||
412 | rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK} | ||
413 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type} | ||
414 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE} | ||
415 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type} | ||
416 | ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK} | ||
417 | } | ||
418 | |||
419 | uboot_deploy_spl () { | ||
420 | install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE} | ||
421 | ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME} | ||
422 | ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK} | ||
395 | } | 423 | } |
396 | 424 | ||
397 | addtask deploy before do_build after do_compile | 425 | addtask deploy before do_build after do_compile |