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.

UCD3138: enable dflash option in multi-image firmware download

Part Number: UCD3138

Dear UCD friends,

Hope everything is doing good with you and your family.

Currently I have a project that both primary side and secondary side are using UCD3138, and UART interface was used to communicate those 2 devices. There is a requirements that update primary side UCD3138 firmware from the secondary side pmbus interface. First, host send primary side data to secondary side UCD3138 via pmbus, and then secondary side ucd3138 send those data to primary side via UART.

Here I came up with a idea using multiimage option in GUI for testing my firmware, and use multi-image firmware download for updating the pflash and dflash contents, and when I click on read multiimage parameter on GUI, I saw there are Data flash parameter, can you please help me know how to enable to update dflash via multiimage downlaod option?

  • We haven't written code to support the data flash write on the multi-image code.  Generally for downloading new versions of code in the field, the data flash holds calibration data, so you don't want to change that.  If you want to calculate and store new data flash data, that needs to be done as part of the version switching process.  It shouldn't be too hard for you to add a data flash write to the state machine.  I think you could just add support for the data flash addresses to the existing state machine.  I think that the GUI will just give you the address for the data flash.  You will have to look at the address and decide what key to write to the flash key register.  I am looking to find out the message format for the multiimage parameters.  They added a byte for data flash download with the boot flash, and if the GUI sees the extra byte, it gets the extra data.  I'll try to get that to you soon.  

  • Jack, here is the command.  Note that the current multiimage code only supports up to the erase page size, and the GUI will support that version as well.

     0 is a 4 byte checksum, and 1 is an 8 byte checksum.  For number of devices, 0 = 1 device, 1 = 2 devices, and so on.  

  • Also, you will have to decide how much data flash you want to erase when you get the erase command for the inactive block.  

  • Hi Ian,

    Thanks for supporting here.

    I've tried your solution of reading the dflash start&end address to GUI, this will insert GUI to start to downloading dflash. It works now. 

    Thanks...