SLAU887 February 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346
The bootloader will be invoked by bootcode when a valid bootloader invocation condition is detected. It will be invoked only if the bootloader is enabled in the BSL mode field of the BCR configuration.
Once the bootloader is started, it first executes the "Init" phase where the initial checks of the BSL configuration is done and the device is configured for bootloader operations.
Next the bootloader enters "Interface Autodetection" phase. In this phase the BSL configures all the available BSL ROM interfaces and the flash plug-in interface , if registered . The BSL then polls for the data through all the interfaces one by one. When a valid connection packet is received in one of the interfaces, that interface will be considered as active interface for further communication and all other interfaces will be disabled. Interface discovery is done for 10 seconds, if no interface has been detected, the device is put in STANDBY mode.
Next the BSL enters "Command reception" phase. In this phase BSL will be waiting in an infinite loop for commands from the host. When a valid command is received, the command is processed and the response from the BSL core is sent back to the host. Then it goes back to the loop and waits for the next command and so on. If the 'Start Application' command is received, the bootloader will trigger a system reset, after which the bootcode is executed and the application is invoked. This phase also has a timeout of 10 seconds. If there is no valid command received, bootloader is locked and it enters Sleep mode.