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.

TPS65982: fw update through I2C.

Part Number: TPS65982
Other Parts Discussed in Thread: TPS65981

Dears,
Now we use TPS65982 develop PC product, and there are some question about PD fw update in windows10 or UEFI shell.
we have read the document of <TPS6598x FW Update From Embedded Controller Over I2C>, and follow the flow chart to programing
but the result is fail.
And the step was:
1, Read Current FW Version. the result is correct. for example, 0xF4.01.37.90.
2, Read BOOT Flags(Reg. 0x2D) and juge the Bootok bit,but this bit always is 0.
so my question is why this bit is 0? and I have read the operational state of the device(Reg 0x03), the result is APP mode,

  • Alex,

    Where did you get the firmware patch vF401.37.90? The firmware for 982 will have a version like 1.12.xx. Please use the 64kB low-region binary as input when updating the sFLASH over I2C.

    Book-OK '0' means the boot has failed, and I'm reluctant to use your register reads for any debug 'coz the device's version number is wrong to start with. First program the device w/ a full-flash binary, and then use the low-region binary to update the sFLASH over I2C - We can then review your observations.

    Thanks & Regards,
    Praneet
  • Praneet,
    The firmware version maybe defined by our customer. And the TPS65982 is shared Rom with thunderbolt, is there some impact?
    Until now I do nothing but read the verison and the boot-ok register, and at the same time the USB function and power delivery function are ok, so I think the pd controller may working normally.
    I will check my fw version first, and thanks for your reply.
  • Customer cannot define firmware version of PD controller - TBT and PD image coexist in the platforms NVM, and that's not an issue. But I'd expect to see the right firmware version and status. Please read 0x03, 0x0F and 0x2D, and share the information for me to investigate any further.

    -/Praneet
  • Praneet,
    I have test read the 0x03,0x0F, and the 0x2D register, throuth this method:


    ReadIICRegister(I2C1_BASE, DefAddr1, 0x0F, 4, tmp);
    printf("Reg 0x0F return: 0x%02X 0x%02X 0x%02X 0x%02X\n", tmp[0],tmp[1],tmp[2],tmp[3]);

    ReadIICRegister(I2C1_BASE, DefAddr1, 0x03, 5, tmp);
    printf("Reg 0x03 return: 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X\n", tmp[0],tmp[1],tmp[2],tmp[3],tmp[4]);

    ReadIICRegister(I2C1_BASE, DefAddr1, 0x2D, 12, tmp);
    printf("Reg 0x2D return: ");
    for(index=0;index<12;index++)
    {
    printf("0x%02X ", tmp[index]);
    }
    printf("\n");

    And the result is :
    Reg 0x0F return: 0x90 0x37 0x01 0xF4
    Reg 0x03 return: 0x41 0x50 0x50 0x20 0x00
    Reg 0x2D return: 0x1E 0x80 0x00 0x00 0x12 0xE9 0x18 0x00 0x42 0x00 0x00 0x00

    Thanks Praneet。
  • Can you please share the binary file that's programmed on the sFLASH, and also the low-region binary that you're attempting to update over I2C.

    -/Praneet
  • Hi Praneet,
    Sorry for late to update, because of I have no bin file for this product, I have ask the FAE for the EVM board of TPS65982,
    And then I have tried fw update funciton and the result is successful.
    But I still have some question:
    1, I have use the TI 《TPS65981_2_6 Application Customization 3_11》tool to generate the EC bin file , and the bin file size is 64k bytes, But the sample code update pd size 68k bytes, so how can I generate the 4k bytes binary file?

    2, Now the flow chart execute update regin0 first and then update regin1, is this correct?

    thanks.
  • Alex, This topic is discussed in length on E2E e2e.ti.com/.../2503997 - Please review this thread, and let me know if you have additional queries.

    -/Praneet
  • Alex, Do you have additional questions on the topic, or can I close this thread?

    -/Praneet
  • Praneet,
    Thanks for your kindly help!