BMI at startup

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19304
Level 2
Level 2
First solution authored
Hello
I have played a little with BMI settings.

I have two MCUs on my prototype : XMC1302-0064 and XMC1202-0032
If I change BMI from ASC_BSL to SWD0 for XMC1302, BMI remains setted to SWD0 even after doing a power cycle.
But for XMC1202-0032, after power-on, BMI is always ASC_BSL, and I have to put it in SWD0 mode everytime, in order to use SWD interface for programming

Why is this behaviour ?
0 Likes
1 Solution
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
Hi ,

There is BMI handling done by SSW. The startup software (SSW) executed after the user function (in ROM) “Request BMI installation” has been called and has triggered a system reset.

The conditions under which this handling is performed are:
• the last reset was a system reset requested by CPU
• the two half words of SSW0 register are inverse to each other

If all the above conditions are true, the SSW considers SSW0[15:0] content as new BMI value to be installed and executes the following:
• check either the current BMI (in CS0) is User_Productive AND the new value is NOT
User_Productive:
– if yes - erase the complete user Flash and install ASC_BSL (or SBSL if supported)
mode as new BMI value
– if not - install the new BMI value from SSW0[15:0]
• instal all zero in SSW0 to indicate no BMI-programming upon the next reset
• request master reset to be triggered

So this is one way the state can go to ASC BSL. Can you confirm this is not happening at your end?

Best Regards,
Vasanth

View solution in original post

0 Likes
3 Replies
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
Hi ,

There is BMI handling done by SSW. The startup software (SSW) executed after the user function (in ROM) “Request BMI installation” has been called and has triggered a system reset.

The conditions under which this handling is performed are:
• the last reset was a system reset requested by CPU
• the two half words of SSW0 register are inverse to each other

If all the above conditions are true, the SSW considers SSW0[15:0] content as new BMI value to be installed and executes the following:
• check either the current BMI (in CS0) is User_Productive AND the new value is NOT
User_Productive:
– if yes - erase the complete user Flash and install ASC_BSL (or SBSL if supported)
mode as new BMI value
– if not - install the new BMI value from SSW0[15:0]
• instal all zero in SSW0 to indicate no BMI-programming upon the next reset
• request master reset to be triggered

So this is one way the state can go to ASC BSL. Can you confirm this is not happening at your end?

Best Regards,
Vasanth
0 Likes
User19304
Level 2
Level 2
First solution authored
Hello
I am not the author of the firmware inside the MCU, I have got only the hex file.
So the firmware changes BMI to ASC_BSL.
Thank you
0 Likes
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
Hi,

Does it mean the the firmware was changing the BMI value and the issue is resolved ?

Best Regards,
Vasanth
0 Likes