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 Flash Programming From AM3358

Other Parts Discussed in Thread: AM3358, TUSB9261, TUSB9260

Hi,

I'd like to program the TUSB9261 in-circuit from the AM3358.  RIght now I am using the TUSB926x development board to program the flash and then swap it on our custom board.  Everything works properly once the flash is programmed.

I have the source for the Linux based Flash burner and have been able to cross-compile the code.  The Linux build (TI SDK 06) we are using has USB HID support built into the kernel.

The eBurner driver loads properly and the device is listed under /dev/TUSB9260_0.

The problem is when running the FlashBurner tool it expects the TUBS926x to show up as an HID device under /dev/usb.  However, I don't have any HID devices listed under /dev/usb or any /dev/usb directory for that matter.

Here is a usb-devices dump that seems to show everything is setup properly.

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0451 ProdID=926b Rev=01.00
S:  Manufacturer=Texas Instruments
S:  Product=TUSB9260 Boot Loader
S:  SerialNumber=TUSB9260BL01
C:  #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=eBurner

Any idea where it would be enumerating the HID device so that I can modify the source code to access it?

Robert

  • Hi Robert,

    Please re-program the TUSB9261 in your development system with HID functionality enabled (by default, HID function is disabled). Please refer to the FlashBurner User's Guide (section - Editing USB Descriptors) to check how to do this.

    Best Regards,

    Alexis Cortes.

  • Hi Alexis,

    Thanks for pointing out the HID descriptor.

    I was hoping to use the Linux Flash Burner as a production utility to program the TUSB9261 parts in circuit.  So the parts would only have the TUSB9260 boot loader firmware loaded (no HID).

    Hacking the Linux Flash Burner source I am able to get all the way to the ioctl programming of the firmware and then it fails.  The errno is "Inappropriate ioctl for device".  The TUSB9261 has the Boot loader firmware.

    I used hid_set_debug and it seems to be identifying the device properly and the soft resets are working. 

    I am forcing the OpenDeviceHandler to be /dev/TUSB9260_0, because _1 does not enumerate with the eBurner driver.  I guess this could be the issue.

    Any ideas to debug?

    Thanks,

    Robert

  • Hello Robert, 

    Could you please send us the exactly logs that you are getting when you run the application?

     What EEPROM burner  version are you using?

     Regards,

    Roberto.

  • Hi Roberto,

    Flashburner is version 0.1.2 and FW is version 1.04.  

    One of the problems was in the eBurner driver in the usb file_operations structure.  I am using Linux kernel 3.2.0 and the .ioctl has changed to .unlocked_ioctl.

    I modified the eBufer_fops structure to use unlocked_ioctl and changed the function call to 

    long eBurner_ioctl (struct file *filp, unsigned int cmd, Output_Buffer *arg)

    I almost have it working. Now I am writing the Descriptor-Firmware.bin file to the ioctl, but it is giving me an error (-110) on the usb_blk_msg in eBurner_ioctl.  

    Is it possible to export this bin somehow from the development kit? 

    Robert

  • I also tried using the FW 1.03 binary included with the source and it still gives me the change error on the usb_blk_msg transfer.

    Robert

  • I was able to get this working.

    I set a fixed value for the usb_bulk_msg timeout instead of using the HZ value in the code.  I also used the 1.03 firmware binary included with the source package.

    Robert

  • Hello Robert, 

    It’s good to know that you have solved your problem, we’ll take note of the solution for any future reference.

     Regards,

    Roberto.

  • Got a question. When you are saying that you program and then swap to your custom board, what development board are you using? I'm assuming that it has a socket for the chip? We are going to be using this chip on a custom board and would rather program and then install since our space is limited. THANK IN ADVANCE.