Bug #13395
openassertion failure in usbftdi
0%
Description
I was having issues with a FTDI based USB serial device, where it doesn't seem to want to properly change baudrate... but that is not 100% confirmed.
So I booted a debug kernel in the hopes of grabbing the USB_DPRINTF's (not figured out how yet :s), but on debug kernel I hit an assert.
I uploaded the dump here https://pkg.blackdot.be/cores/usbftdi_vmdump.0.lz4
root@omnios:/var/crash/omnios# mdb -k unix.0 vmcore.0 Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc apix scsi_vhci zfs sata sd ip hook neti sockfs arp usba uhci mm stmf stmf_sbd lofs mpt ptm cpc ufs logindmux nfs ] > $c vpanic() 0xfffffffffbdce615() uftdi_fifo_flush+0x6e(fffffe03abe5dc00, 0, 2) usbser_flush+0x74(fffffe038f3960c0, fffffe038f7f20a0) usbser_wmsg+0x1ab(fffffe038f3960c0) usbser_wq_thread+0x62(fffffe038f396118) taskq_thread+0x315(fffffe038fa1a4e0) thread_start+0xb()
Files
Updated by Jorge Schrauwen over 1 year ago
For personal reference, https://docs.oracle.com/cd/E37838_01/html/E61056/modules-68.html
Shows how to get the log handle for the before mentioned USB_DPRINTF's
Updated by Jorge Schrauwen over 1 year ago
Looks like the log actually shows out of order actions happening, not sure how though, might be a bit out of my depth
uftdi0: uftdi_fifo_flush: dir=0x1 uftdi0: uftdi_fifo_drain uftdi0: uftdi_close_port 0 uftdi0: uftdi_pm_set_idle uftdi0: uftdi_fifo_flush: dir=0x2
I do have a theory... I'm trying to flash a firmware to the device and it resets the device before doing so.
So somewhere in the 'oops the device has disapeared' path of the code something goes wrong?
https://github.com/JelmerT/cc2538-bsl/blob/master/cc2538-bsl.py#L235
It toggles DTR (low) to enable the bootloader, then RTS (low) (high) (low) to reset the SoC on the device.