This serie based on v2019.10 propose updates on the DFU stack: - add capability to have several DFU backend running in parallel - add MTD backend for update of NAND, NOR or SPI-NAND - add VIRTUAL backend for board/command specific behavior - add some weak callback
This v2 patchset: + solves compilation for dependancy with CONFIG_CMD_MTDPARTS + solves bad block management for NAND in the erase loops (copied from MTD command), the previous was functional only on SPI-NAND. But I detect issue for NAND; when bad block is detected fail_addr is not updated. See the complete analysis on the issue (reproduced in MTD command) in http://patchwork.ozlabs.org/patch/1165056/ "cmd: mtd: solve bad block support in erase command" The better solution is a MTD backport from Linux, but udpate the loop is functional for SPI-NAND and NAND. To test the new features and as example, I update the stm32mp1 board to use the new features; I test them with the command "dfu 0" (for test I have dependency with patch http://patchwork.ozlabs.org/patch/1162076/) The expected target of the dfu part for this serie is v2020.01. I will merge the stm32mp1 part when they will be accepted by dfu maintainers. This serie prepares the DFU backend for the coming 'stm32prog' command and for STM32CubeProgrammer on stm32mp1 platform. This STMicroelectronics tool is based on DFU protocol and allows to update all the boot devices and the OTPs on the ST boards (so several DFU target in parallel, including spi nand). Build result for dfu_v3 branch can be found in https://travis-ci.org/patrickdelaunay/u-boot/builds/596684593 only one error for sheevaplug, but not reproduced on my side arm: + sheevaplug +u-boot.kwb exceeds file size limit: + limit: 524288 bytes + actual: 524320 bytes + excess: 32 bytes $> tools/buildman/buildman sheevaplug boards.cfg is up to date. Nothing to do. Building current source for 1 boards (1 thread, 12 jobs per thread) arm: w+ sheevaplug +===================== WARNING ====================== +This board does not use CONFIG_DM_MMC. Please update +the board to use CONFIG_DM_MMC before the v2019.04 release. +Failure to update by the deadline may result in board removal. +See doc/driver-model/MIGRATION.txt for more info. +==================================================== +This board does not use CONFIG_DM_USB. Please update +the board to use CONFIG_DM_USB before the v2019.07 release. +This board does use CONFIG_MVSATA_IDE which is not +ported to driver-model (DM) yet. Please update the storage +controller driver to use CONFIG_AHCI before the v2019.07 +release. +This board does not use CONFIG_DM_ETH (Driver Model +for Ethernet drivers). Please update the board to use +CONFIG_DM_ETH before the v2020.07 release. Failure to +update by the deadline may result in board removal. +See doc/driver-model/migration.rst for more info. 0 1 0 /1 sheevaplug Regards Patrick Changes in v3: - Add CONFIG_DFU_SF_PART and solve compilation issue, dependancy with CONFIG_MTDPARTS - update bad block support in erase loop - Update loop management for erase - rebase on v2019.10 - remove previous patch 16/16 pushed by error in v2 http://patchwork.ozlabs.org/patch/1162076/ Changes in v2: - Add dfu documentation - Update dfu documentation for callbacks - Add dfu documentation for several device - Update commit message - Update commit message - Update dfu documentation for MTD - Update dfu documentation for MTD - Update dfu documentation for virtual backend - Update dfu documentation for callbacks - Update callbacks comment after Lukasz review - Update after Lukasz Majewski comments Patrick Delaunay (15): dfu: cosmetic: cleanup sf to avoid checkpatch error doc: dfu: Add dfu documentation dfu: sf: add partition support for nor backend dfu: prepare the support of multiple interface dfu: allow to manage DFU on several devices dfu: allow read with no data without error for EOF indication dfu: add backend for MTD device dfu: add partition support for MTD backend dfu: add DFU virtual backend dfu: add callback for flush and initiated operation stm32mp1: activate DFU support and command MTD stm32mp1: activate SET_DFU_ALT_INFO stm32mp1: configs: activate CONFIG_MTD_SPI_NAND stm32mp1: board: add spi nand support stm32mp1: add support for virtual partition read board/st/stm32mp1/README | 111 ++++++++++ board/st/stm32mp1/stm32mp1.c | 164 ++++++++++++++- cmd/dfu.c | 21 +- configs/stm32mp15_basic_defconfig | 6 + configs/stm32mp15_optee_defconfig | 6 + configs/stm32mp15_trusted_defconfig | 6 + doc/README.dfu | 270 ++++++++++++++++++++++++ drivers/dfu/Kconfig | 21 ++ drivers/dfu/Makefile | 2 + drivers/dfu/dfu.c | 145 +++++++++++-- drivers/dfu/dfu_mtd.c | 311 ++++++++++++++++++++++++++++ drivers/dfu/dfu_sf.c | 56 ++++- drivers/dfu/dfu_virt.c | 49 +++++ include/configs/stm32mp1.h | 42 +++- include/dfu.h | 71 +++++++ 15 files changed, 1251 insertions(+), 30 deletions(-) create mode 100644 doc/README.dfu create mode 100644 drivers/dfu/dfu_mtd.c create mode 100644 drivers/dfu/dfu_virt.c -- 2.17.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot