This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software: Code Composer Studio
Hi,
I need to disable FRAM mass erase on wrong BSL password entry and use a permanent custom BSL password that I can use for future Firmware upgrades via BSL.
I have found that this password is firmware specific with address location of each ISRs used as data for password.
So is it possible to use any permanent password of our choice during every firmware upgrades?
If its possible, how can we do that?
In our project, preventing MSP FW corruption has high priority over proprietary FW security, so we need to disable this "wrong password mass erase" feature.
Hi,
this is possible, but in this case you would need to avoid using the password scheme of the built-in BSL, which you described correctly. To do so, you would need to implement your own BSL, including the PW check mechanism.
We have some examples on this, please see our main BSL landing page on our web. e.g. this one
It uses RF in addition to the serial communication, but the principle is what you would like to implement.
Best regards
Peter
Rejath Paul Varkey said:I have found that this password is firmware specific with address location of each ISRs used as data for password.
So is it possible to use any permanent password of our choice during every firmware upgrades?
If its possible, how can we do that?
This can be done by using fixed vector ISR adr values that point to another ISR adr value that is changing during every firmware update. Or to use fixed ISR adr values that point to fixed ISR function that is locked to specific address. I used both of this ways in simple assembler projects.
Hi,
correct, this is another option to achieve this. Though, this can result in dependency of the complexity of the code and the interrupt service routines in different timings, as forcing the compiler to place the related code into specific locations, which might in return force the compiler to include additional jumps into the ISRs or other code.
Thus it needs to be considered what in the user's case is the easier or preferred approach, the above risk of potentially differing real time behavior, or the additional effort of a customized BSL and respective code overhead in the program memory. Of course the other downside of a customized BSL in case of the MSP430FR2xx devices, like the MSP430FR2433, is the missing HW protection of the BSL code of the customized BSL. Only the protection in the code, implemented by the user, is protecting the customized BSL.
Best regards
Peter
Hi Peter & zrno,
As of now, we can't implement custom BSL in our MSP due to size issues. Less than 1 KB is only left in MSP FRAM for programming. We are already using, 2 port IRQ, 3 timer IRQ, ADC IRQ and i2c IRQ along with FRAM data storage. So we can't further add any more code in FRAM.
Is it possible to use a permanent BSL password using the built-in BSL in MSP430FR2433?
Also can you mention the steps to achieve this?
zrno soli said:This can be done by using fixed vector ISR adr values that point to another ISR adr value that is changing during every firmware update. Or to use fixed ISR adr values that point to fixed ISR function that is locked to specific address. I used both of this ways in simple assembler projects.
Hi Peter,
I am able to access your link. I have been trying to implement what Zrno proposed, but its not successful. I'm using ccs version 9.
Can you provide more details on how we can point to an "ISR adr value that is changing during every firmware update" from a "fixed vector ISR adr".
Is this something that I have to change in my MSP firmware?
Or is it something that needs to be edited in linker file?
Hi Rejath,
unfortunately we have no example for this. I spoke about this already yesterday to the colleague, who's responsible for BSL implementations on the tool's side. As stated, unfortunately we do not have an example for this, but probably the best approach would be involving the linker file. I'll try to generate something, but this might take some time including the testing.
Best regards,
Peter
Hi Rejath,
sorry for the delay, me and my colleagues have been working on this topic. There is another thread, on the same topic. To avoid duplication I am pasting here the link to that one CCS/MSP430FR2433: How to fix MSP430 ISR location - MSP low-power microcontroller forum - MSP low-power...
Please let me know, whether this addresses your needs. Many thanks in advance.
Best regards
Peter
Hi Peter,
Thanks for your support. I am referring the example provided in the link to implement a fixed BSL flashing password.
Hi Rejath,
many thanks for your feedback. Just a small comment on the handling of the E2E system. Please, in case you'd like to confirm the resolution of the problem in the future, first post your final comment, and then click on the resolved option. This is basically due to the system implementation, as any further post within a certain time frame, even if confirming resolution before, will reopen the case.
Thus based on your comments I am closing this thread from my side.
Best regards
Peter
**Attention** This is a public forum