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:
Major concern :- 1.Detailed steps to change BMSP0 to GPIO73 in Z1_BOOTCTRL and leave others to default ?
2.To test this I need to try EMU boot mode what value and which address. I tried using 0xFE5A for 0xD00 and 0x004A for 0xD01 but it is not working.
Issue:- Confusion on BMODE Behaviour When Switching Boot Modes Using BMSP Pins and Implementation of changing BMSP0
I'm working on a setup where:
Factory Default Setup:
Since there's a pin conflict with this setup, I tested the SCI bootloader using Emulation Boot Mode by modifying the memory location 0xD00 to 0x815A to switch the SCI pins to their alternate configuration:
Current Requirement:
I now want to change BMSP0 to GPIO73 instead of the default value to manage boot mode selection.
Questions:
Any guidance or references would be greatly appreciated.
Hello,
Apologies for the long response - I tried to address all of your questions below:
1. Your boot mode select pins are used to select one of four options:
So for BMSP0 = 1 and BMSP1 = 1, the default boot mode is "Get/Flash".
However, keep in mind that "Get Mode" means that a number of different boot modes can be selected depending on the value of BMODE. This is purposeful, as this means the boot mode is configurable by the user and can have many different options available. So to sum up, the BMODE register selects the boot mode that is used if you use "Get/Flash Mode". Please see section 4.6 from the TRM for an explanation of the BMODE register:
2. BMODE does not override the boot pin selection. The boot pins select the boot path first and foremost. BMODE is only to define what happens in "Get Mode".
3. First, since the BMSPx configurations are programmed in device OTP, I would always recommend using emulation boot to validate your boot mode before actually programming OTP (as I believe you have already done). In emulation boot mode, the device will treat the emulation boot registers as it would the OTP registers. In this way, you can write to the emulation boot registers to set up your boot mode for debug purposes without needing to program OTP yet. If you've already successfully used emulation boot, then you can proceed to program OTP. This can be done easily by using the On-Chip Flash tool. In CCS, during a debug session you can go to "Tools" --> "On-Chip Flash" menu. This UI window allows you to easily program the labeled OTP registers.
If you are only changing one boot pin GPIO, you only need to modify that location in the Z1 BOOTCTRL register as I highlighted in the table below. To make it GPIO73, you would write the value 74 as indicated in the register description below as well:
4 We do not have a specific example on this, but we we do have a flash programming example and SCI flash kernel example located in C2000ware: {C2000Ware}\device_support\f2837xs\examples\cpu1.
We also have the device boot ROM source code available which has C files that can be used/referenced when developing various communication protocol bootloaders: {C2000Ware}\libraries\boot_rom\f2837xs\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\source.
I will also note that a colleague is working on a bootloader application note to help try to simplify similar information - however, this has yet to be released. I can try to clarify anything else on E2E if needed. Hope the above helps in the meantime!
Best Regards,
Allison
Hi Allison,
My requirement is to set BMODE to Flash and BMSP0 to 73 leave others to default.
so that, I can set BMSP to SCI mode 1st to load code through bootloader
and then change BMSP to get mode to boot from flash.
I tested with Emulation Boot Mode it working as expected.
1.Kindly provide detailed steps to write Z1_BOOTCTRL in OTP using on chip menu in debug you mentioned.
What value and how I need to program.
I also have some doubt in On chip flash tool
Why is device name is different I'm using TMS320F28379S.
What value I need to program here and in some other post in E2E i saw this "Please note that the Flash API has a 64-bit minimum when programming in order to properly compute the ECC value, so your buffer might need to include some of the surrounding memory." How should I do this.
Kindly help me out.
Hi Allison,
My requirement is to set BMODE to Flash and BMSP0 to 73 leave others to default.
so that, I can set BMSP to SCI mode 1st to load code through bootloader
and then change BMSP to get mode to boot from flash.
I tested with Emulation Boot Mode it working as expected.
1.Kindly provide detailed steps to write Z1_BOOTCTRL in OTP using on chip menu in debug you mentioned.
What value and how I need to program.
I assumed value 0x004A0B5A
But i notice default it was 0xFFFFFFFF so as per this I assume value would be 0xFF4A0B5A
Kindly let me know the correct value and detailed steps
I also have some doubt in On chip flash tool
Why is device name is different I'm using TMS320F28379S.
What value I need to program here and in some other post in E2E i saw this "Please note that the Flash API has a 64-bit minimum when programming in order to properly compute the ECC value, so your buffer might need to include some of the surrounding memory." How should I do this.
Kindly help me out.
Hello,
Please allow another day for me to formulate a proper response here. Appreciate your patience!
Best Regards,
Allison
Hi Allison,
Sure! Thanks for the response. Kindly find the below attached detail for your reference.
My major concern is,
What value I need to write to Z1_BOOTCTRL in OTP using on chip menu in debug.
As per result from EMU boot mode the value is 0x004A 0B5A
But I noticed the default was 0xFFFFFFFF so as per this I assume the value would be 0xFF4A 0B5A
Kindly let me know the correct value, so that I can try programming the OTP memory
Since you have two on-going threads discussing the same topics, I'm going this close thread and move the discussion to the other thread.
Best,
Matt