[U-Boot] [PATCH v3 00/15] dfu: update dfu stack and add MTD backend

Patrick Delaunay patrick.delaunay at st.com
Mon Oct 14 07:27:57 UTC 2019


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



More information about the U-Boot mailing list