mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
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>
This commit is contained in:
parent
6ce1f4ad8d
commit
468f0508b5
6 changed files with 1021 additions and 1 deletions
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue