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.

TPS65983: Creating Flash Image for Thunderbolt 3 Using TPS65983

Part Number: TPS65983

Could someone please comment on the steps below for creating a flash image for the TPS65983 from a TI perspective?  Our design is not powering up properly and suspect the firmware was not built properly:

Thanks!

---John

Software Tools

Tool

Source

Version

Description

TPS65983 Application Customization 3_19

T.I.

3.19

This utility creates and modifies the TPS65983B power delivery portion of the firmware stored in flash.

Imaginarium2

Intel

4.11.8

This tool is the “Thunderbolt NVM customization tool”.

 

It “allows customization of Titan Ridge and Alpine Ridge Firmware for use in Thunderbolt products”.

 

Note that this tool does NOT interact with hardware, but only with image files. You open an existing image file and edit it. This tool can also merge in new T.I. PD firmware.

 

It is run as a portable application and doesn’t require installation.

TenLira

Intel

 

This tool is used to read and write to flash.

Flash_Tool

Intel

3.2.1

This command line tool programs flash.

 

TenLira Manufacturing Tool version 3.2.0 must be installed

 

 

 

 

 

 

Step 1: Run the TI TPS65983 Application Customization Tool

  • Run latest version of TPS65983 Application Customization Tool version (3.19 when this document was last updated)

 

  • Select “Change File” to select Firmware Base Image: “tps65982_v0006.49.00.bin”
  • Select Project / New Project / Which reference design are you using: “Bus-powered Device”
  • Is your system PD3 compliant? “Supports PD3 and PD2”
  • Does this device sink power on the internal HV path (3A max) or external (5A max)?: Internal
  • Select Binary / Save Binary
  • Check Full Flash Image, binary file format, and select a filename: TPS65983B_PD_full_image.bin
  • Region 1 offset: 0x2000 (default)
  • Region 2 offset: 0x15000 (default)
  • The binary file will then be created; Intel Imaginarium2 tool will merge with TB firmware

 

STEP 2: Use the Intel Imaginarium2 tool to prepare a firmware image for the target

  • Run latest version of Imaginarium2 (v4.11.8 when this document was last updated)

Page #1) Load Intel-provided firmware image: “LP_EP_2C_A1_rev15_NOSEC_sign.bin”

Page #2) Select Default Configuration “Alek Creek – BPD 1 port”

Page #4) Required Mbps: 100”

Page #4) Maximum Mbps: 10,000”

Page #4) Device Power – Select “Bus Power”

Page #4) Select active CIO lanes in bus-power mode: “2 lanes enabled”

Page #6) PCIe Lane Config: 1x2

Page #6) PCIe Deemphasis: -6 dB

Page #6: Subsystem Vendor ID: 0x8086

Page #6: Subsystem ID: 0x0000

Page #7: PCI Enablement (Device 0 and Device 1): all unchecked

Page #8) Change Vendor Name from “Intel” to “our company

Page #8) Change Model Name from “Alek Creek” to “our_model_name

Page #8) Change Vendor ID from 0x8086 to 0xhhhh (our Intel vendor ID)

Page #8) Change Model ID from 0x0004 to 0xhhhh (our model ID)

Page #8) Change Model Revision to “1”

Page #8) Change NVM Revision to “1”

Page #13) Choose CIO lanes P/N swaps:

  • PA_CIO0_TX_PN (unchecked)
  • PA_CIO0_RX_PN (unchecked)
  • PA_CIO1_TX_PN (unchecked)
  • PA_CIO1_RX_PN (unchecked)

Page #14) Set all Tx Forward Feedback Equalizer fields to “1”

Page #16) Thunderbolt Port A Configuration: “Thunderbolt Multi-Function”

Page #23) USB2 amplitude: 0x88

Page #24) Set LTR into device: unchecked

Page #26) External GPU device?: unchecked

Page #27) USB 3.1 Presets: leave at default

Page #31) Leave all other fields unmodified.

Merge NVM with PD firmware? (Select “Yes”)

PD FW Rev: 0x0000

Page #32) Save image to file: target.bin

Save configuration to XML file? (you check this box and save configuration to file target.xml)

 

Step 3: Program flash device (Winbond W25Q80DV) using ALL-100 programmer from Hi-Lo systems

This programmer can directly use the binary file image previously created.

 

Step 4: Solder flash device to PCB.

  • I should add that the symptoms we are seeing are as follows:

    • The PD controller completes the first phase of initialization and +5V is turned on at “PP_HV”
    • The PD controller has a short burst of activity on the flash SPI interface lasting only 160 usec, presumably looking for a valid configuration, and then goes inactive.  Obviously, 160 usec is not long enough to read the application code.  It appears that only 12 SPI cycles are executed.
    • The PD controller never turns on “DG_SVR_EN”, so the power supplies never get enabled and the AR controller can’t turn on.

  • Hi John,

    I can only comment on creating the binary image for the TPS65983B. From your description, the steps are correct. I would suggest reaching out to your Intel point of contact for further questions because you are correctly creating the binary image for the PD controller.

    If this answers your question, PLEASE select This resolved my issue

    Thank you,
    Eric

  • Hmm, we found a potential issue that may have escaped your inspection, something led us to believe tps65982_v0006.49.00.bin was the correct FW to use, now we found tps65983a_fw6_0006_49_00.bin which seems the more likely candidate. Could confirm this is the correct base image for an Alek Creek (AR LP BPD PCIe) based design to use?

  • Hi John,

    FW version 6.x is only to be used in Titan Ridge designs. Those would need to use TPS65983B.

    TPS65983 (non-B version) would only work with FW version 4.x like you mentioned in your original post.

    If this answers your question, PLEASE select This resolved my issue

    Thank you,
    Eric

    1. So tps65983a_fw4_0004_55_00.bin would be the correct image for an Alek Creek reference design (AR LP BPD PCIe, and Alpine Ridge LP based design)? How are we supposed to know this (aside from asking).
    2. Where is guidance available for General and Common Settings tabs?  For example under Common Settings- Configuration Mode - Transmit identity Data Object the Product Type field comes up as "Peripheral" where it would seem "Alternate Mode Adpater" would be a more correct choice since this is Thunderbolt.  

  • Hi John,

    The GUI tool will automatically select the correct FW version for you when you enter the reference design you are following.
    No changes are needed to the configurations to work with the reference designs. All settings could be left as is.

    Thank you,
    Eric
  • That's not what we're seeing, here's our steps again, please read carefully:

    1) launch the TPS65983 Application Customization 3_19 tool

    2) Select "New Project"

    3) We're give the following options: Add-in Card, Apex Creek, Bus-Powered Device, Tahini Creek, Tapex Creek.  The closest we feel we come to with the Alek Creek (AR LP BPD PCIe) reference design is "Bus-powered Device", we choose that.

    4) We're using the TPS65983b so we choose "Supports PD3 and PD2"

    5) We choose Internal (PP_HV)

    The tool then loads tps65983a_fw6_0006_49_00.bin .  Now you said "FW version 6.x is only to be used in Titan Ridge designs" but we are not Titan Ridge, we're Alpine Ridge LP, what are we supposed to do?

  • Hi John,

    In that case since you are using 83B, you can use the 6.x FW. Please use the FW provided by the tool when entering your project information through the "New Project" options.

    Thank you,
    Eric
  • And what is your response to how we are selecting the reference design used? There is no entry for Alek Creek or AR LP BPD PCIe used, when we do make a selection based on the best fit the Common Settings that are associated with the loaded image seem wrong (i.e. the above mentioned under Common Settings- Configuration Mode - Transmit identity Data Object the Product Type field comes up as "Peripheral" where it would seem "Alternate Mode Adpater" would be a more correct choice since this is Thunderbolt.)

    Can we please escalate this issue and get some phone support, this is a lot of back and forth with partial answers to multiple questions.
  • Hi John,

    I would suggest reaching out to your local Intel contact for questions this design. They would know better which template to select for this reference design.

    Thank you,
    Eric
  • Have you ever heard of Alek Creek (or AR LP BPD PCIe) Intel reference design? is this something TI is unaware of, it is a design in their collateral. And they direct us to TI for FW.

  • Hi John,

    This seems to be a spin of another Intel design. We have reached out to Intel and have asked for more information on this design.

    Thanks,
    Eric
  • Great, thank you!
  • Wondering if there's been any word from Intel?

    I should also add, I have found out that 4.55 is the correct FW version for Alpine Ridge LP design.

    --John

  • Hi John,

    Thank you for letting us know that 4.xx is the correct FW version to use for this design. We are still working with Intel to create the template for Alek creek. I will let you know once we have it.

    Thank you,
    Eric
  • Is there any update on this? We too need a project template for the Thunderbolt design we are working on that is based on the Alek Creek reference design.
  • Hi Brian,

    We are still working with Intel to get this template created.
  • Hi Brian,

    We checked with Intel and Alec Creek is a bus powered device and should not require any other change.

    Please use the "Bus-powered device" template from the tool.

    Regards,

    Anant

  • The problem we have is that we are developing a single-port self-powered device.  We can find no template for single-port self-powered devices.  They are all two-port devices.  If we choose a two-port template we see no way to remove the second port form the configuration.  Is there another tool we should be looking at that will allow us to build exactly what we want from the ground up?

    Thanks.

    Brian

  • Hi Brian,

    The Bus Powered Device template is the correct template to use for that design.

    Thank you,
    Eric