TimJTi opened a new pull request, #3068:
URL: https://github.com/apache/nuttx-apps/pull/3068

   ## Summary
   
   This PR has been drafted after email-list discussions mainly with with 
@Cynerd and @michallenc
   
   I will leave it as a draft awaiting any initial observations from interested 
parties in case of changes - significant or otherwise - that requested.
   
   ### Progress Reporting
   
   This was driven as a result of the inevitable time that firmware upgrades 
can take. The progress is reported via syslog, but not all embedded systems use 
this and, in the case (such as mine) where a user LCD is available, it is 
beneficial to allow progress to be displayed duringh booting and upgrades - 
especially should things go wrong.
   
   To achieve this there is a new Kconfig choice - disabled by defaiult - to 
allow messages to be printed to stdout.
   
   Since other users may wish to treat NXboot as a library, and perhaps handle 
the messages differently, the feature is implemented by calls to a specific 
`nxboot_progress` function using new enums to indicate the type of message: 
info, error, or that a potentially lengthy procedure has started, stopped or is 
in progress using the "." character printed periodically.
   
   A user wishing to implement this in another way would use the existing 
top-level public function `nxboot_main` and would only need to modify this to 
report errors in a different way.
   
   Enabling this feature adds approximately 1.5KiB to the size of the binary, 
in my case.
   
   ### RAM copy
   
   In my case, the ultimate boot_image function needs to copy the validated and 
bootable image to SDRAM. Although this could be handled by the board-specific 
logic, the NXboot header does not conatin the size of the actual image to be 
copied meaning an image copy can only be of the entire NXboot "slot" size. This 
means it is a little slower then it could be and it made sense to have that 
implemented by a new function `nxboot_ramcopy` before calling the board boot 
function via `BOARDIOC_BOOT_IMAGE`
   
   This is enabled by a new Kconfig choice that is disabled by default
   
   The address to copy the image to is also configured via Kconfig - BUT there 
is no way that I can see for NXboot to determine the validity or otherwise of 
the configured address.
   
   ## Impact
   
   Since the new features are selected via Kconfig, defaulting to off, the is 
no intended impact to existing implementations. Lower level functions have been 
edited carefully, and I can confirm that NXboot still behaves for me as it did 
before the changes, with the added benefit of progress messages if required.
   
   The copy-to-ram function also works, for me, as required.
   
   ## Testing
   
   This has been tested on my custom board using a SAMA5D27C-D1G processor, 
equipped with a partitioned 256Mbyte NOR flash that for the NXboot slots, and 
an 800x40 TFT for stdout courtesy of the FBCON example application
   
   


-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

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

Reply via email to