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.

TPS65988: Update configuration data in SPI flash via I2C

Part Number: TPS65988

Tool/software:

Hi,

We have an application where main system power is provided by one of the two ports managed by the TPS65988. So since the embedded controller (EC) won't be up by the time the TPS65988 negotiates power, the configuration has to come from the SPI flash instead of directly from the EC via I2C. My understanding is that the provided GUI should be used to create this configuration bin file and flash it to the SPI flash via the I2C connection. 

Is it possible to only update the configuration section and only one setting at a time? Specifically, I'd like to avoid using the GUI and generating an entire bin file. I'd like to use either the EC or a separate configuration/provisioning tool to update the configuration section. Specifically, we'd like to generate the TPS65988 configuration in our own software and then write it to the SPI flash. Is the configuration data structure available somewhere?

So far I have only been able to find the "SPI flash FW update over I2C" guide, but it only outlines the SPI flash organization and does not contain the configuration data structure. Where is this information available?

Thanks,

Adrian

  • Hi,

    Is it possible to only update the configuration section and only one setting at a time?

    I am not sure what you meant here. Are you trying to program the base FW and configuration section separately? 

    Unfortunately I am not able to provide the config data structure at this moment.

    Regards

  • Yes, that's exactly what I'm trying to do.

    If the TPS65988 configuration changes after provisioning, we'll have to update the SPI flash in the field. In our case, some of these changes need to be propagated to the SPI flash; updating dynamically via I2C after power-up is not sufficient.

    The issue here is not so much the need for being able to flash ONLY the configuration section, but rather that the only way to generate a bin file/create flash data is to use the GUI. We are entirely Linux based and would like the bin file generation to either happen automatically as part of the build system or as part of the flash update procedure on the EC. Specifically, what is checked into version control should be a JSON-style file that can easily be analyzed. Simply checking in a bin file doesn't tell anyone whether it matches the desired configuration. Hence the need to use automation to generate the bin file or update the flash section based on a known data structure and a configuration file.

    Does the above sound like a reasonable and correct workflow? Or should the configuration update be handled differently? Again, the big issue for us is the reliance on the GUI and I'm curious if there's an official and TI sanctioned way around it.

  • Hi,

    Unfortunately the appconfig structure is is considered a trade secret and there is also an algorithm in the GUI to generate the check sum.

    There is an option that you can use EC to update the HI register after the device is boot up but register such as GPIO register is read only after boot up.

    There is another option of running the GUI in command line so you can update the PD appconfig/PDFW using batch file.

    Regards

  • When you say "HI registers" I'm assuming you're referring to the Host Interface registers (I2C registers), right? I am using these registers at the moment and am able to manipulate things from the EC, but unfortunately these settings don't stick (i.e. they get reset to their default or SPI flash configured settings).

    Where can I find the information to run the GUI in command line mode? I found SLVA701C, but that seems to be only talking about the Python scripts.

    I haven't given the provided Python scripts a try yet, but I'm wondering if they can be used to generate the flash bin file or is that only possible using the GUI? If the Python scripts can be used to generate the flash bin file then that might be a good option for us as we could potentially run them on Linux. As mentioned, the Windows-based GUI is a bit of a blocker for us.

    Thanks for your continued support on this!

  • Hi,

    Yes HI register is referring to Host Interface register. And yes you are correct those changes will be wiped after device power cycles.

    The App Notes you linked will likely not work for generating flash binary. The information I received is that you can only generate binary from GUI and I am not sure if we have any scripts here for Linux. I will double check with the team again.

    Regards