diff options
Diffstat (limited to 'meta/classes/kernel-fitimage.bbclass')
-rw-r--r-- | meta/classes/kernel-fitimage.bbclass | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index 9661b4ff78..9fa302a5c8 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass | |||
@@ -75,6 +75,9 @@ FIT_KEY_SIGN_PKCS ?= "-x509" | |||
75 | # Description string | 75 | # Description string |
76 | FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" | 76 | FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" |
77 | 77 | ||
78 | # Sign individual images as well | ||
79 | FIT_SIGN_INDIVIDUAL ?= "0" | ||
80 | |||
78 | # mkimage command | 81 | # mkimage command |
79 | UBOOT_MKIMAGE ?= "uboot-mkimage" | 82 | UBOOT_MKIMAGE ?= "uboot-mkimage" |
80 | UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}" | 83 | UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}" |
@@ -142,6 +145,8 @@ EOF | |||
142 | fitimage_emit_section_kernel() { | 145 | fitimage_emit_section_kernel() { |
143 | 146 | ||
144 | kernel_csum="${FIT_HASH_ALG}" | 147 | kernel_csum="${FIT_HASH_ALG}" |
148 | kernel_sign_algo="${FIT_SIGN_ALG}" | ||
149 | kernel_sign_keyname="${UBOOT_SIGN_KEYNAME}" | ||
145 | 150 | ||
146 | ENTRYPOINT="${UBOOT_ENTRYPOINT}" | 151 | ENTRYPOINT="${UBOOT_ENTRYPOINT}" |
147 | if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then | 152 | if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then |
@@ -164,6 +169,17 @@ fitimage_emit_section_kernel() { | |||
164 | }; | 169 | }; |
165 | }; | 170 | }; |
166 | EOF | 171 | EOF |
172 | |||
173 | if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${kernel_sign_keyname}" ] ; then | ||
174 | sed -i '$ d' ${1} | ||
175 | cat << EOF >> ${1} | ||
176 | signature@1 { | ||
177 | algo = "${kernel_csum},${kernel_sign_algo}"; | ||
178 | key-name-hint = "${kernel_sign_keyname}"; | ||
179 | }; | ||
180 | }; | ||
181 | EOF | ||
182 | fi | ||
167 | } | 183 | } |
168 | 184 | ||
169 | # | 185 | # |
@@ -175,6 +191,8 @@ EOF | |||
175 | fitimage_emit_section_dtb() { | 191 | fitimage_emit_section_dtb() { |
176 | 192 | ||
177 | dtb_csum="${FIT_HASH_ALG}" | 193 | dtb_csum="${FIT_HASH_ALG}" |
194 | dtb_sign_algo="${FIT_SIGN_ALG}" | ||
195 | dtb_sign_keyname="${UBOOT_SIGN_KEYNAME}" | ||
178 | 196 | ||
179 | dtb_loadline="" | 197 | dtb_loadline="" |
180 | dtb_ext=${DTB##*.} | 198 | dtb_ext=${DTB##*.} |
@@ -198,6 +216,17 @@ fitimage_emit_section_dtb() { | |||
198 | }; | 216 | }; |
199 | }; | 217 | }; |
200 | EOF | 218 | EOF |
219 | |||
220 | if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${dtb_sign_keyname}" ] ; then | ||
221 | sed -i '$ d' ${1} | ||
222 | cat << EOF >> ${1} | ||
223 | signature@1 { | ||
224 | algo = "${dtb_csum},${dtb_sign_algo}"; | ||
225 | key-name-hint = "${dtb_sign_keyname}"; | ||
226 | }; | ||
227 | }; | ||
228 | EOF | ||
229 | fi | ||
201 | } | 230 | } |
202 | 231 | ||
203 | # | 232 | # |
@@ -236,6 +265,8 @@ EOF | |||
236 | fitimage_emit_section_ramdisk() { | 265 | fitimage_emit_section_ramdisk() { |
237 | 266 | ||
238 | ramdisk_csum="${FIT_HASH_ALG}" | 267 | ramdisk_csum="${FIT_HASH_ALG}" |
268 | ramdisk_sign_algo="${FIT_SIGN_ALG}" | ||
269 | ramdisk_sign_keyname="${UBOOT_SIGN_KEYNAME}" | ||
239 | ramdisk_loadline="" | 270 | ramdisk_loadline="" |
240 | ramdisk_entryline="" | 271 | ramdisk_entryline="" |
241 | 272 | ||
@@ -261,6 +292,17 @@ fitimage_emit_section_ramdisk() { | |||
261 | }; | 292 | }; |
262 | }; | 293 | }; |
263 | EOF | 294 | EOF |
295 | |||
296 | if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${ramdisk_sign_keyname}" ] ; then | ||
297 | sed -i '$ d' ${1} | ||
298 | cat << EOF >> ${1} | ||
299 | signature@1 { | ||
300 | algo = "${ramdisk_csum},${ramdisk_sign_algo}"; | ||
301 | key-name-hint = "${ramdisk_sign_keyname}"; | ||
302 | }; | ||
303 | }; | ||
304 | EOF | ||
305 | fi | ||
264 | } | 306 | } |
265 | 307 | ||
266 | # | 308 | # |