[U-Boot,RFC,00/14] dfu: update dfu stack and use them for stm32mp1
mbox series

Message ID 1563541046-6432-1-git-send-email-patrick.delaunay@st.com
Headers show
Series
  • dfu: update dfu stack and use them for stm32mp1
Related show

Message

Patrick DELAUNAY July 19, 2019, 12:57 p.m. UTC
This serie based on v2019.07 propose some update on the DFU stack:
- add capability to have several DFU backend running in parallel
- add MTD backend for NAND, NOR or SPI-NAND
- add VIRTUAL backend for board/command specific behavior
- add some weak callback

To test the feature and as example, I update the stm32mp1
to use the new features (tested with command "dfu 0")

This serie prepares the DFU backend for communication with
STM32CubeProgrammer on stm32mp1 platform (stm32prog command).
This STMicroelectronics tool is based on DFU protocol and
update the boot devices and the OTPs on the ST boards.



Patrick Delaunay (14):
  dfu: cosmetic: cleanup sf to avoid checkpatch error
  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 0 data 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
  stp32mp1: 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        | 165 ++++++++++++++++++-
 cmd/dfu.c                           |  21 ++-
 configs/stm32mp15_basic_defconfig   |   6 +
 configs/stm32mp15_trusted_defconfig |   6 +
 drivers/dfu/Kconfig                 |  13 ++
 drivers/dfu/Makefile                |   2 +
 drivers/dfu/dfu.c                   | 145 +++++++++++++++--
 drivers/dfu/dfu_mtd.c               | 306 ++++++++++++++++++++++++++++++++++++
 drivers/dfu/dfu_sf.c                |  55 ++++++-
 drivers/dfu/dfu_virt.c              |  49 ++++++
 include/configs/stm32mp1.h          |  38 ++++-
 include/dfu.h                       |  51 ++++++
 13 files changed, 939 insertions(+), 29 deletions(-)
 create mode 100644 drivers/dfu/dfu_mtd.c
 create mode 100644 drivers/dfu/dfu_virt.c

Comments

Lukasz Majewski July 22, 2019, 8:27 a.m. UTC | #1
Hi Patrick,

> This serie based on v2019.07 propose some update on the DFU stack:
> - add capability to have several DFU backend running in parallel
> - add MTD backend for NAND, NOR or SPI-NAND
> - add VIRTUAL backend for board/command specific behavior
> - add some weak callback
> 
> To test the feature and as example, I update the stm32mp1
> to use the new features (tested with command "dfu 0")
> 
> This serie prepares the DFU backend for communication with
> STM32CubeProgrammer on stm32mp1 platform (stm32prog command).
> This STMicroelectronics tool is based on DFU protocol and
> update the boot devices and the OTPs on the ST boards.
> 

Thanks for such great enhancement on DFU. I've added Heiko to CC, so he
also would be aware of your work (as some of his boards use DFU for
update).

Please add detailed documentation entry (as I've indicated in other
patches reviewed) for above features.

The roadmap:

- Please send v1 (without RFC). (Please run buildman on several siemens
  and trats/trats2/odroid-x* boards)

- I will test it on odroid-XU3 (and probably Heiko would test it for
  regression).





A side question - would you need in some point updating envs via DFU
(no matter if those would be a whole image created with mkimage or an
individual one) ?

> 
> 
> Patrick Delaunay (14):
>   dfu: cosmetic: cleanup sf to avoid checkpatch error
>   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 0 data 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
>   stp32mp1: 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        | 165 ++++++++++++++++++-
>  cmd/dfu.c                           |  21 ++-
>  configs/stm32mp15_basic_defconfig   |   6 +
>  configs/stm32mp15_trusted_defconfig |   6 +
>  drivers/dfu/Kconfig                 |  13 ++
>  drivers/dfu/Makefile                |   2 +
>  drivers/dfu/dfu.c                   | 145 +++++++++++++++--
>  drivers/dfu/dfu_mtd.c               | 306
> ++++++++++++++++++++++++++++++++++++
> drivers/dfu/dfu_sf.c                |  55 ++++++-
> drivers/dfu/dfu_virt.c              |  49 ++++++
> include/configs/stm32mp1.h          |  38 ++++-
> include/dfu.h                       |  51 ++++++ 13 files changed,
> 939 insertions(+), 29 deletions(-) create mode 100644
> drivers/dfu/dfu_mtd.c create mode 100644 drivers/dfu/dfu_virt.c
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de