In a customer project we have to do some customization to the fastboot
support. In particular, we have to check signatures in uploaded images,
which requires us to upload the whole image before it can be flashed.
This contradicts Fastboot sparse support, so we make Sparse support
optional in this series.
We decided to use FIT images as format to the signed images, so now we
are in the situation that we want to hold big FIT images in memory and
not unnecessarily copy it. Normally Fastboot temporarily stores a file
in RAMFS. This file can't be directly used by the FIT image code though,
so we add a compile time option to store the temporary fastboot image as
a buffer. This can be directly reused by the FIT image code (thanks to
recent FIT image changes).
Last not least we add hooks to the fastboot code. These can be used
to handle commands in a special way, like for example to deny certain
commands or to implement special commands. Also there is a "flash"
hook which can be used to add a custom flash operation, like for example
for our customer to implement signature checking of the FIT images.
Sascha Hauer (9):
ubiformat: Allow to ubiformat with a buffer given
usb: gadget: fastboot: Make sparse support optional
usb: gadget: fastboot: pass struct f_fastboot * around
usb: gadget: fastboot: use read_file_2
usb: gadget: fastboot: Always remove temporary file
usb: gadget: fastboot: fix typo
usb: gadget: fastboot: beautify fb_run_command()
usb: gadget: fastboot: Add option to download to a buffer
usb: gadget: fastboot: Add external command execution support
common/ubiformat.c | 55 ++++++----
drivers/usb/gadget/Kconfig | 22 +++-
drivers/usb/gadget/f_fastboot.c | 216 ++++++++++++++++++++++++++--------------
drivers/usb/gadget/multi.c | 2 +
include/ubiformat.h | 7 ++
include/usb/fastboot.h | 17 ++++
6 files changed, 222 insertions(+), 97 deletions(-)
barebox mailing list