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.

UCD90320: Remote upgrade of UCD via PMBUS script

Part Number: UCD90320


Hello all,

       We are trying to remote upgrade the UCD90320 firmware through PMBUS script exported from the Fusion Digital Tool. The observations are as follows,

The programming get's completed without any issue but the new firmware won't come into effect without the power-cycle.

Even though we have selected the reset after programming checkbox there is no use of this.

The soft reset command 0xDB is sent at the end of the script.

We are reading the version register 9Bh after programming to verify the change in the version number. 

We wanted our board to come up with updated firmware without the power cycle. Let us know what we are missing out?

Regards,

Vishwas Navada B,

Senior Engineer, Tejas Networks

  • Hello

    The data flash write script file is to write flash directly so the settings will not take effect until a reset is issued.

    If want to change the setting on the fly, you have to know exact the changes and  issue individual commands to change those setting on the fly.

    The simple way is to use the log function inside the fusion GUI. When you make any changes on the GUI, the commands can be logged.

    The log can be enabled from Tools->PMBus logging. it is better to disable the polling before enabling logging otherwise the log would be flooded.

    Once have all the commands, you can just send those commands one bye one to change the settings.

    After all the commands are done, please be sure to send STORE_DEFAULT_ALL(0x11)command to make the change permanent.

    Regards

    Yihe 

  • Hi Yihe,

        Currently, we are following steps,

    1. Program via PMBUS script,

    2. Send a soft reset (0xDB) 

    Result: No change in the firmware version even after the 30s when we read through the script (0x9B).

    Unfortunately, RESTORE_DEFAULT_ALL(0x12) is not supported in UCD90320 which would have transferred all our flashed data on NVM to RAM.

    We are not using the 0x11 command STORE_DEFAULT_ALL because some of the GPIO states change after the bootup as CFPGA writes on to some GPIO registers, also this command copies everything from RAM to NVM, which will contain the wrong GPIO pin configurations. 

    So, for now, we need a method to activate the latest programmed image without the power cycle. Please let us know if anything can be done. 

    Regards,

    Vishwas Navada B,

    Senior Engineer, Tejas Networks. 

  • Hello

    In my previous post, I had proposed the correct way to solve you issue. Please read it.

     For example, if want to change the 0x9B(MFR_REVISION). you can just issue 0x9B command with proper payload to update the revision.

    As for how to send 0x9B command, please refer to PMBus 1.1 Part 2 spec and the protocol is block read please refer to SMBus 2.0 spec section 5.5

    If your system software changes the GPIO on the fly, you have to the following options:

    A. CFPGA change the GPIO after STORE_DEFAULT_ALL

    B. Revert the GPIO after STORE_DEFAULT_ALL.

    C. do not issue the STORE_DEFAULT_ALL command. so all your changes will be gone after power cycle

    Regards

    Yihe

  • Hi Yihe,

    I understood the solution you mentioned in the last post, I was going through the datasheet and found this, the production programming file programming without affecting existing rails. I was wondering when the newly programmed file will be effective. Is there anything we have to do after programming the production file to activate it? We tried sending the soft reset command but it's of no use. 

    Regards,

    Vishwas Navada B

  • Hello

    For the brand new chip, it has no configuration. if the chip is soldered on the board, we recommend using data flash file format to program to ensure that all IOs are under control during the programming stage.

    Your case is little different. The chip already had been programmed previously. Now you want to update some setting on the fly without reset the device.

    The best is to send individual pmbus command to change the thing that you want to change instead of reprograming the whole device.  This will change on the fly. you do not have to issue soft-reset command under this case. but if you do issue soft-reset, please send STORE_DEFAULT_ALL command to store the change otherwise those changes will be gone after soft reset.

    Have you figured out what kind of changes are and what kind of commands to send to do the changes?

    Regards

    Yihe