
Hi everyone,
Here is the second attempt at getting fastboot flashing functions working on top of a NAND, for arbitraly large images.
While the NAND support itself was quite easy to do, the support for the Android sparse images was quite difficult to add, and ended up being a quite huge refactoring of the sparse parse already in tree, that was tied to the MMC layer.
This serie has been tested on a CHIP and an A13-Olinuxino, two Allwinner devices, the CHIP for the NAND, and the Cubietruck to test the MMC.
Let me know what you think, Maxime
Changes from v1: - Added support for multiple chunks transfers - fixed a bug in the image parsing block counts - Take the flashing errors into account now, instead of ignoring them. - Changed the name of the sparse images file to image-sparse.* - Fixed the floating point computations issues - Added the CONFIG_MUSB_GADGET option - Take NAND bad blocks into account now
Maxime Ripard (14): mtd: uboot: Add meaningful error message sparse: Move main header parsing to a function of its own sparse: Refactor chunk parsing function sparse: Simplify multiple logic fastboot: Move fastboot response functions to fastboot core sparse: Implement storage abstraction fastboot: Implement flashing session counter sparse: Implement several chunks flashing fastboot: Implement NAND backend fastboot: nand: Add pre erase and write hooks sparse: Rename the file and header sunxi: Add support for android boot image sunxi: A13-Olinuxino: Enable the USB OTG controller sunxi: cubietruck: Enable the USB OTG controller
common/Makefile | 7 +- common/aboot.c | 244 ---------------------- common/fb_mmc.c | 96 +++++---- common/fb_nand.c | 213 +++++++++++++++++++ common/image-sparse.c | 393 ++++++++++++++++++++++++++++++++++++ configs/A13-OLinuXino_defconfig | 3 + configs/Cubietruck_defconfig | 5 + drivers/mtd/mtd_uboot.c | 2 +- drivers/usb/gadget/f_fastboot.c | 54 ++++- include/configs/sunxi-common.h | 1 + include/fastboot.h | 22 ++ include/fb_mmc.h | 5 +- include/fb_nand.h | 11 + include/{aboot.h => image-sparse.h} | 17 +- 14 files changed, 776 insertions(+), 297 deletions(-) delete mode 100644 common/aboot.c create mode 100644 common/fb_nand.c create mode 100644 common/image-sparse.c create mode 100644 include/fastboot.h create mode 100644 include/fb_nand.h rename include/{aboot.h => image-sparse.h} (53%)