Trying to flash a FIT image over fastboot often results in errors like
this:
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 18394488 is not a multiple
of the block size 4096
error: write_sparse_skip_chunk: don't care size 10009976 is not a multiple
of the block size 4096
error: write_sparse_skip_chunk: don't care size 1625464 is not a multiple
of the block size 4096
[...]
FAILED (remote: 'writing sparse image: Invalid argument')
The FIT image knows about its own size anyway, so to get around this
issue, we can simply pad the image to a multiple of 4 kiB to make it
work with the fastboot sparse magic.
Suggested-by: Ahmad Fatoum <[email protected]>
Signed-off-by: Roland Hieber <[email protected]>
---
scripts/lib/ptxd_make_fit_image.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/lib/ptxd_make_fit_image.sh
b/scripts/lib/ptxd_make_fit_image.sh
index dd0f63b7b72d..660dd236f241 100644
--- a/scripts/lib/ptxd_make_fit_image.sh
+++ b/scripts/lib/ptxd_make_fit_image.sh
@@ -139,6 +139,7 @@ ptxd_make_image_fit() {
echo "Generated device-tree for the fit image:"
cat "${its}"
fi &&
- ptxd_exec mkimage -N pkcs11 -f "${its}" "${image_image}" -r
"${sign_args[@]}"
+ ptxd_exec mkimage -N pkcs11 -f "${its}" "${image_image}.tmp" -r
"${sign_args[@]}" &&
+ ptxd_exec dd if="${image_image}.tmp" of="${image_image}" conv=sync bs=4k
}
export -f ptxd_make_image_fit
--
2.39.2