I have MCUBOOT compiled under Zephyr 3.0 working fine with my 52840 based project. The transport is the CDC ACM "UART" using CONFIG_MCUBOOT_SERIAL
Using mcumgr.exe to load the application from Windows, it was taking 4 1/2 minutes to load/program a 220K app. That is less than 1KB/sec.
I was able to do a significant speedup by changing the mtu. This involved changing the config line CONFIG_BOOT_MAX_LINE_INPUT_LEN=4096 and modifying the following in boot_serial.c
#define BOOT_SERIAL_INPUT_MAX 4096 // was 512
That allowed me to change the mtu on the mcumgr as the following
mcumgr --conntype serial --connstring dev=COM4,mtu=4096 image upload signed-app.bin
It is now 1 1/2 minutes, which is still only 2.7KB/sec. Any ideas on what could be keeping it still so slow?
Prj.cnf is below
CONFIG_DEBUG=n CONFIG_PM=n CONFIG_MAIN_STACK_SIZE=10240 CONFIG_MBEDTLS_CFG_FILE="mcuboot-mbedtls-cfg.h" CONFIG_MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD=n CONFIG_BOOT_SWAP_USING_SCRATCH=y CONFIG_BOOT_ERASE_PROGRESSIVELY=y CONFIG_BOOT_SWAP_SAVE_ENCTLV=n CONFIG_BOOT_ENCRYPT_RSA=n CONFIG_BOOT_ENCRYPT_EC256=n CONFIG_BOOT_ENCRYPT_X25519=n CONFIG_MCUBOOT_INDICATION_LED=y ### mbedTLS has its own heap # CONFIG_HEAP_MEM_POOL_SIZE is not set CONFIG_FLASH=y CONFIG_LOG=n # Serial CONFIG_SERIAL=y CONFIG_CONSOLE=y CONFIG_UART_NRFX=y CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_UART_LINE_CTRL=y CONFIG_UART_CONSOLE=y # MCUBoot serial CONFIG_MCUBOOT_SERIAL=y CONFIG_BOOT_SERIAL_CDC_ACM=y CONFIG_BOOT_SERIAL_DETECT_PORT="GPIO_0" CONFIG_BOOT_SERIAL_DETECT_PIN=12 CONFIG_BOOT_SERIAL_DETECT_PIN_VAL=0 CONFIG_BOOT_MAX_LINE_INPUT_LEN=4096 # Required by USB CONFIG_MULTITHREADING=y # USB CONFIG_USB_DEVICE_STACK=y CONFIG_USB_DEVICE_PRODUCT="MCUBOOT" CONFIG_USB_COMPOSITE_DEVICE=n CONFIG_USB_MASS_STORAGE=n