You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2021/05/06 13:49:02 UTC

[GitHub] [mynewt-mcumgr] sw opened a new issue #122: Zephyr port: unnecessary flash alignment check

sw opened a new issue #122:
URL: https://github.com/apache/mynewt-mcumgr/issues/122


   This relates to https://github.com/apache/mynewt-newtmgr/issues/185
   
   There is a performance problem when using mcumgr CLI to upload firmware images to a Zephyr system. There is an overhead of up to 4x in the data transmitted on the serial port.
   
   On the one hand, this is due to sub-optimal frame handling in mcumgr CLI as reported in https://github.com/apache/mynewt-newtmgr/issues/185
   
   But I suspect the MCU side could also be improved.
   
   `img_mgmt_impl_upload_inspect` rounds the data length down to a multiple of the flash write block size:
   https://github.com/apache/mynewt-mcumgr/blob/798f7fe28bb32335ba25d1c180808cd88d73a83c/cmd/img_mgmt/port/zephyr/src/zephyr_img_mgmt.c#L571-L576
   
   But then, buffered write is used in `img_mgmt_impl_write_image_data`:
   https://github.com/apache/mynewt-mcumgr/blob/798f7fe28bb32335ba25d1c180808cd88d73a83c/cmd/img_mgmt/port/zephyr/src/zephyr_img_mgmt.c#L307
   
   According to the documentation of `flash_img_buffered_write`, this function will store non-complete blocks in RAM until it is called with `flush == true`. So a length that is *not* a multiple of the flash write block size should not pose  a problem.
   
   My suggestion would be to remove the length truncation in `img_mgmt_impl_upload_inspect`.
   Or is there some special case that this would break?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org