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.

TUSB9261-Q1: Read SPI-Firmware image stops after 3 Byte

Part Number: TUSB9261-Q1
Other Parts Discussed in Thread: TUSB9261

We use the TUSB926x_FW_v1.06.bin firmware image and managed to write it to the SPI flash (assumption).

We use UBoot to boot the board. All supply voltages have been checked.

At this stage, no USB is initialized. We do not have a SATA device connected.

After toggling the GRST# pin (pin 4) of the TUSB9261, the IC starts and tries to read from the SPI flash.

First the command 0x05 (RDSR) is sent. The flash answers twice with 0x00.

About 10us later the TUSB sends 0x03 (Read command) with address 0x00, 0x00, 0x00.

So far this looks good to us.

The flash responds with exactly 3 bytes, the first 3 bytes of the firmware binary - 0x18, 0xD6, 0x00. After that the CE# goes high and nothing happens.

Is this behavior intentional? What do we need to do to fully load the firmware and get the TUSB working?

Many thanks!


  • Hi,

    Does your SPI flash meet the following requirements? How was the SPI flash programmed? TUSB9261 does support SPI Mode 0, not SPI Mode 1.


    SPI Flash requirements:

    ~ Supports SPI Mode 0 
    ~ The bootloader uses a fixed frequency of 18.75 MHz.
    ~ The flash must use a word size of 8 bits and an address length of 24 bits.
    ~ The program instruction must allow 256 bytes to be written in one operation.
    ~ The entire chip is erased by the bootloader prior to programming.
    ~ A minimum flash size of 512 kbits (64 k x 8) is recommended.

  • Hi Malik,

    we use the SST25PF040C SPI-Flash.

    the Chip support Mode 0, up to 40 MHz, have 3 Byte Adresses, have page program up to 256 bytes, have 4 MBit.

    We wrote a small program (inspired by Flash burner GUI description: https://www.ti.com/lit/ug/sllu125d/sllu125d.pdf?ts=1652364374144) and measured the 18.75 MHz SPI-Clock frequency.

    When writing a RDSR command was send, afterwards a Chip Erase Cmd (0xC7) and a lot of RDSR commands afterwards.

    It seams the writing is not the problem.

    We could read the first 3 byte after deassert the GRST# pin, but after the 3 bytes the transfer stops?

  • SPI flash seem okay. TUSB9261 should perform a burst read and should not stop after 3 bytes. Is it possible to use a external SPI host to read flash and  ensure the entire FW was written? 

    We have a no longer supported Linux version of the flashburner. It does not work with modern linux OS however others have been able to get this package to work for their systems. It may provide a hint here as to what may be happening. Please accept my friend request so that I can send you the software through E2E DM. Please post on your original thread once you have done so.

  • We found the issue. In the firmware file TUSB926x_FW_v1.06.bin the descriptor header and checksum are missing. Therefore the TUSB load only 3 Byte and detect missing header. We export the binary file from Windows programmer tool and get the missing pieces. Thanks for your help!