From patchwork Wed Mar 18 08:24:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Delaunay X-Patchwork-Id: 243773 List-Id: U-Boot discussion From: patrick.delaunay at st.com (Patrick Delaunay) Date: Wed, 18 Mar 2020 09:24:45 +0100 Subject: [PATCH 00/18] stm32mp1: add command stm32prog Message-ID: <20200318082503.8025-1-patrick.delaunay@st.com> Add a specific command stm32prog for STM32MP soc family witch allows to update the devices on the board with the STMicroelectronics tool STM32CubeProgrammer (http://www.st.com/STM32CubeProg). This command use the same UART STM32 protocol than MCU STM32 with or USB with DFU protocol v1.1 (MCU ST extension are no supported). The executed actions are based on a tab separated value file with a stm32 header (see https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer_flashlayout). This FlashLayout file is loaded in DDR by TF-A during during a serial boot or in a virtual device by stm32prog command and is parsed by U-Boot (see "AN5275: USB DFU/USART protocols used in STM32MP1 Series bootloaders" for details). Regards Patrick Patrick Delaunay (18): usb: gadget: g_dnl: add function g_dnl_set_product dfu: add prototype for dfu_transaction_initiate/cleanup stm32mp: add function get_cpu_dev stm32mp: add the command stm32prog stm32mp: stm32prog: add flash layout parsing stm32mp: stm32prog: add MMC device stm32mp: stm32prog: add support of boot partition for eMMC device stm32mp: stm32prog: add upport of partial update stm32mp: stm32prog: add MTD devices support stm32mp: stm32prog: adapt the MTD partitions stm32mp: stm32prog: add support of ssbl copy stm32mp: stm32prog: add support for delete option in flashlayout stm32mp: stm32prog: add otp update support stm32mp: stm32prog: add pmic NVM update support stm32mp: stm32prog: add serial link support stm32mp: stm32prog: enable videoconsole stm32mp: stm32prog: support for script stm32mp: stm32prog: add support of RAM target arch/arm/mach-stm32mp/Kconfig | 17 + arch/arm/mach-stm32mp/Makefile | 1 + arch/arm/mach-stm32mp/cmd_stm32prog/Makefile | 9 + .../cmd_stm32prog/cmd_stm32prog.c | 192 ++ .../mach-stm32mp/cmd_stm32prog/stm32prog.c | 1745 +++++++++++++++++ .../mach-stm32mp/cmd_stm32prog/stm32prog.h | 185 ++ .../cmd_stm32prog/stm32prog_serial.c | 993 ++++++++++ .../cmd_stm32prog/stm32prog_usb.c | 230 +++ arch/arm/mach-stm32mp/cpu.c | 11 +- .../arm/mach-stm32mp/include/mach/stm32prog.h | 16 + .../arm/mach-stm32mp/include/mach/sys_proto.h | 5 + board/st/common/stm32mp_dfu.c | 20 + board/st/common/stm32mp_mtdparts.c | 14 +- configs/stm32mp15_basic_defconfig | 7 +- configs/stm32mp15_trusted_defconfig | 7 +- drivers/usb/gadget/g_dnl.c | 8 + include/dfu.h | 3 + include/g_dnl.h | 1 + 18 files changed, 3445 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/Makefile create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_serial.c create mode 100644 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c create mode 100644 arch/arm/mach-stm32mp/include/mach/stm32prog.h