kasjer opened a new pull request, #3043:
URL: https://github.com/apache/mynewt-core/pull/3043

   Function os_dev_init() is called in two places
   First possibility is when device is created in
    os_dev_create() AND g_os_started is not 0
   This apply to devices that are created after main
   function is called (including package defined syscfg functions).
   
   Other place that calls os_dev_init is os_dev_initialize_all() This function 
calls all os_dev_init() functions for requested stage. When 
os_dev_initalize_all() is called only devices added by bsp (often delegated to 
mcu) are created. Keep in mind that since g_os_started is not set yet condition 
is not checked.
   
   When mcuboot starts with sysinit() enabled it calls os_dev_initalize_all() 
twice then executes sysinit(). Any device created in sysinit() will not be 
initialized since g_os_started is not set.
   
   This change stores device init stage number and uses it when devices are 
initialized. For devices created by BSP initial stage is 0 so dev_init is not 
called during device creation but postponed till os_dev_initialize_all() is 
called (so despite condition change initialization sequence stays the same).
   
   For devices created in sysinit() stage is already set to KERNEL and they are 
initialized during creation even though g_os_started is not checked any more. 
So there should not be any differences in behavior.
   
   For MCUBoot, devices created in sysinit() will have dev_init called when 
created just like it would happen when OS_SCHEDULING is enabled.
   
   Only difference is that when device initialization fails at one stage but is 
not marked as critical initialization will be attempted in next stage.


-- 
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...@mynewt.apache.org

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

Reply via email to