Part Number: TMS320F280049C
Hello,
I built a board based around a TMS320F280049CRSHS (56-pin) device, and thought I had my bases covered concerning serial boot-loading. I'm using the default BMSP assignments: BMSP0: GPIO32, and BMSP1: GPIO24. However, because I'm using every pin on the device and had other requirements for most pins, I had to assign SCIARX to GPIO3, and SCIATX to GPIO37. Now that I'm actually attempting to implement the serial boot-loader, I've found in both the datasheet and TRM that it looks like I can't reconfigure the boot options in the SCI boot mode to use those particular GPIO pins. What I see available is the following:
One thing that is odd to me is why am I able to select GPIO48/49 as GPIO-pins for the SCI boot option, when indeed those GPIOs do not connect to any pins on any package offering of this device?:
One possible workaround I've thought of, to keep from having to build new boards for a bit, is the following:
- Change the boot definition to change boot mode '1', as defined by BMSP1/0. I would change this from SCI-boot, to FLASH-boot, with a different entry point for FLASH (versus boot-mode '3': normal mode)
- Create a semi-custom version of the boot kernel that knows to use the pins I have selected for SCIA, and sets the pin-mux accordingly
- Store this custom kernel at the different FLASH entry point from step-1
- Now when I select boot-mode-1, it boots the serial boot kernel and uses the right SCIA pins for my application, and I can boot-load over serial. The main problem I see with this is that I may not be able to use the same process/tools on the host side, since the kernel will already be running, and this isn't expected with the provided host-side tools.
Does this seem viable?
Another similar option I thought of is to simply place a small amount of code at the altered FLASH entry point as mentioned in setp-1 above; this code would simply set up the pin-mux appropriately for my SCIA pin connections. After doing that, it would jump directly to the serial boot-loader process. However, I don't know the address of where this process starts. Is there a way to figure out the address of the circled process, so that the entire boot process doesn't restart after I have changed the pin-mux?:
Thanks for any confirmations or suggestions!
Ted