diff options
author | Patrick Delaunay <patrick.delaunay@st.com> | 2020-03-18 09:25:00 +0100 |
---|---|---|
committer | Patrick Delaunay <patrick.delaunay@st.com> | 2020-05-14 09:02:12 +0200 |
commit | 468f0508b58b02943942c47b66645a05244f2bbf (patch) | |
tree | 5fc5106f04290e71e1c2a677d3103bfe38cbd737 /arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c | |
parent | 6ce1f4ad8d300272e7584a514d9be0c334754ff7 (diff) |
stm32mp: stm32prog: add serial link support
Add a support of UART, using the same protocol than MCU STM32.
See "AN5275: USB DFU/USART protocols used in STM32MP1 Series
bootloaders" for details.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Diffstat (limited to 'arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c')
-rw-r--r-- | arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c index 581f97e0b5..1769ba05f2 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c @@ -25,11 +25,14 @@ static int do_stm32prog(cmd_tbl_t *cmdtp, int flag, int argc, if (!strcmp(argv[1], "usb")) link = LINK_USB; + else if (!strcmp(argv[1], "serial")) + link = LINK_SERIAL; if (link == LINK_UNDEFINED) { pr_err("not supported link=%s\n", argv[1]); return CMD_RET_USAGE; } + dev = (int)simple_strtoul(argv[2], NULL, 10); addr = STM32_DDR_BASE; @@ -60,6 +63,12 @@ static int do_stm32prog(cmd_tbl_t *cmdtp, int flag, int argc, goto cleanup; switch (link) { + case LINK_SERIAL: + ret = stm32prog_serial_init(data, dev); + if (ret) + goto cleanup; + reset = stm32prog_serial_loop(data); + break; case LINK_USB: reset = stm32prog_usb_loop(data, dev); break; @@ -90,7 +99,7 @@ cleanup: U_BOOT_CMD(stm32prog, 5, 0, do_stm32prog, "<link> <dev> [<addr>] [<size>]\n" "start communication with tools STM32Cubeprogrammer on <link> with Flashlayout at <addr>", - "<link> = usb\n" + "<link> = serial|usb\n" "<dev> = device instance\n" "<addr> = address of flashlayout\n" "<size> = size of flashlayout\n" |