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: Read Rate significantly slower than write over USB3

Part Number: TUSB9261

Tool/software:

I have designed a module for this USB-SATA Bridge, and during testing, have found that my read speeds are consistently slower than write.

Over USB2, both read and write are consistently around 45MBps (which is consistent with the bus bottleneck), but over USB3 I am seldom able to break 69MBps sequential read.

Example:

I have tried this with several HDDs and SSDs, including one 120GB Samsung 840EVO that consistently hits 250MBps Sequential Read/Write with other bridge adapters (such as JMS578).

Is this an issue with my USB-3 implementation? Is there something i need to tweak in the firmware?

My schematics & firmware are attached (firmware is .bin, changed filetype to upload)

TiSata.X2.pdf

�)�����������������������������e�e�e�e�7�].�Be�}�i���U�e�e�e�e�e�e��e�e�1�-�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�ӷe�e�e�e�e�e�e�e�e�x��L i���!�A��hJK|@��6�2ʙB��BٱN1h���E� i1h���+h���;� x� x���NFFFp!"�1p!��!"���4sus8F�p�0��LF�h�||)F���x��xa(�`(�"�"�h|�|��(� 0�(�(� 0�
 0�
8� 8�`8��� � pG pG�(
܈(�8Ѐ
�8Ѐ	�
�8�8Ѐ���� pG pGFx �9���ёx�	(� pG�JoIO� s�HhK`�`pG�F���iL�hh@x��8
��C0��(�򺀜M(�(@� h)F"�� h�h�`�h	 "�`���!4"�p�'"�!�� �h��"�h
px�,0�yh���y��0z���z��	0{��
p{���{���{p��@x%$0Ӏx��py���y��pz#��
�zp����xh��y��Hy���y��	�y��
z��Hz���z$%��dHhh@Axh��@��x�#�I�I�AxI8�,�,F�AxI�]�]�A�!	�h�x�	�|�J@��0XCXJC�Zh	��� �*��*�O�p�� 	�Hh	������������� �|!�� ���FT�0���[%010d] @Error: Invalid LBA range specified!
�F[%010d] LBA:  0x%08x 0x%08x  Xfer Length = %u.
��p�x#<Ф�< Ф�^<Ф�<
��y�O�p�F#�y�yz@z�z�z{@{E�%F�&��yz@� VL@��5�A�k,�@	hHC`Fp��6����`�p�)� �x#FZ,-�Z,��,�,|�
,
�
,|�,v��v�dg�$r�h�<o��]�dk�dg�_�#<fФd��bФb�d\ФZ�
<E�<C�N�,ܢ,#Ѕ<,��OФO�dIФG�
<)ФE�d�9�<@Ф@�d:Ф
�+<8�d,3٤,2��.�&�y�yz@z4C%C(C%Т*%�&�x��	��z�z{@{*CC C���yzC��yX��@x@	�
�Hh�����#�#� �F`Fp��F���Fٱr �I px�`p�z�p �z q`q�q�p�zz��z)�"��I�q���I"��
 �q��y0��!4"F���Hh}I|@��0PCX(�@!B!�#�p�Hcp'!!p~!qA~@"aq�~�q�q�~!rarA�r|!si
`s��F[%010d] -> scsi_build_ata_pass_through_cmd() - cmd = 0x%x, byte_cnt = %u, chk_cond = %u.
�I0��hhx :YВW�:
В�^:,В*�:���h�Zx	��h%hMa�x�v�hh�x�vyKvSyvx�+Ъ+�Sz�(� �yz*��z�(� �yz�yRz��{�(� Zx	�#
FKa�hhyJw�hhSyw�y�v�y�vzKvSzv�z{�zR{C�#D�$B�"�Zy�(� Zx��v�hh�xKv�xvy
a�O�r
aH�	i9�Hh����� 0� 0��F[%010d] -> scsi_get_data_direction() - unknown cmd 0x%02x.
0�����������-��AdL�hh��x�x!	%%(����(@��{�(�%Px(@��	-@���z�z{R{@� F�&R�(�|`F@��<��r�&'��A'h>p'h~p'h
�p'h�p>C'h>q>C'h~q
G�#h�q#h�q�h&h|cF����"2r�h&h|����"rr�h&h|����"
�r�h&h|����"�r"hs�h&h|����"rs�h|ZC���r���b����r���"6����B�*�F'h��"�s"h�s�h|��0rh��Vh"h���{F��s�h|���� �"h�{@�@�s"h�"����� ,� !AF�H�`�hf�
Fd�
%b�T�Pz�(�%z@(�%�xy�xRy0CC:CO�	-N�|�I@��7��"#��A)����?$�O��0&hC2p&hCrp#h	
F��p!h�p�h#h
|fF9F�b���"q�h#h|�b���"Zq�h#h|�b���"
�q�h'h|�`���"F�q�h!�% h�`�`(F����F[%010d] @Warning: Zero transfer length specified in SCSI R/W cmd block.
�-��OkM�hh.h@x2�� @�@x�?'?*O���*@�|�j��hh��0�x)#�Az�(�'Cx�y���$4p pp�p�h|@��0HC\�I�)��)�!!�p0qtq�qO��q�Ay�(�'��� 0p$tp�h|@��3aF��X(�  �pO��p���/K��0��
!F"PF��! ��+
�p��h|@��2������	4�  Hp�h|������	�
�Lp�h|@��2������	� $��r�����h*h�E�
`��HF	'H`��Hh��
��'8F������`���-��O
O�h�I|@��4`CX��H
(�
 �Z�h@xI�z�� O��FT��y�yP� � �E��HRhh�pK�O�RhXF�W��Hh!O�r0F�/������x@� �O�	O�	@����?���@$��F�)zhz�z�z@� G�!�y/y"T�$O�`FA�jyO�G:FB��yO�!�A�jxC��)xO�!B��xO�"A�O�"�xA�O��r�O��pO�@�B�O��pO��r@�B���O��p�B����������p�q����q��6:F���A���E�,����nO|nJ8h@��3�!����x�A @E(��Ed��!4"��''��p�&���!��`#��@"��0���� O�I'	��N|"���F������x�(,����||!7F�@��$B�s���"���� |&9F	���`8�|8F8���h@
���|2F���1F�� D����O|"���F��5HhO�	�x0F!O�r�.�	�	,�[���@h5�XD�B��@����!4"����� ��''��p�&��`%��P@$��@O�I#	���������[%010d] @Warning: scsi_handle_mode_sense_cmd() - page code 0x%02x not supported.
�F0�������0�-��O�L�hhy@y��4
O�!�(� ��hF!4"��O�'O�
'��eM��0��N����K���j��hh
yQTґA�|@��1QCYX)��!�!��|�F"!������hF����F/@�`��h
|�|%G�0S���"��@F���h
|F0F���`|���)FHF
F��/@�I�� ��hF��b�F@�|�I@��0XCX(�8��Hh��@Ӡ
�p�/���-�% `w w�v�v`v''vhF%a��������္�Qй�@���hh	y�:�|@��1QCYX)��!�!��|�F"!����j�hF���F/@���h
|�|%G�0S���"��@F�?��h
|F0F���`|���)FHF
F�F�/@�Հ�hF!4"���������� ���F����hhy�1�
|@��0PCX(��"�"�� 	|(F"���!��hF����F/��h�||O�	"G�0S	���������h
|F0FKF���`/@���hh�x�D�
|�K@��0PCZ�<өF���!"���� ��hF����F/g��h
|�|%B�s���"��@F���h
|F0F���`|���)FHF
F���/Q�D ��L!��N'��pU&��`� ��	|(F���!
F��� ���!�h��|�F"!�����hF��J�F/��h
|�|%B�s���"��@F�r��h
|F0F���`	|KF*F���F�y�O����h	|(F���!
F�n�8F
����T�����������0���x��L�hh"hx�8(����JGA>60�h��$!F �
FF
�p�!F� �
FF
�i� Fx�
 x� �^x�xy�x[y@� E�% A�!
�U� h�h�`�hhIy%����� x�(Hxp�h h�`!�! �`!� p!hHp	� �`�����F h"��� h�h�`!�h�`	 x�[%010d] @Error: scsi_handle_start_stop_unit() - start = 0, LOEJ = %u is not supported.
��@�-��OF(|���}(� A�����!"� F�b���P�O(hFFxk��)��)�h|(�ɇ�O(|��d�@��9	�p��T(@�L��h|	�q���RE�h	x)�)��)@�h�Ix��p����F5(8�5(�1�(�(�'�(�����ކ@�φ�����8����=�@�	����8�#�@��@𣂀�����������@��澞(ܞ(��B8��8��@��+8�S���݀��ڀ@yЀ�߁�Ⱦ�8��@�@�@
Ѐ�Ȁ��ŀ@dЀ@𵆟y�yz�z\z@� B�"�D�$4�  y2���J�B8� ��U
�O��r�B8� %F(@�ho!:F
���!4"
��' �#��8��90t��hh	x�)�_!]!��DP��:)
��<��h["h��: 
x�*O��!��@hAx��;�x��=�x���>���FT�F /9�`9 � 9<�`t t�h	h�x�s�x�s
ybsJy"s
x�*�Jz�(� �y	z"��z�(� �yz�yIz��{�(� yat�h	hJy"t�y�s�y�s
zbsJz"s�z�z{I{C�#D�$A�!1a�k�hˠ
�;� (@�,�����(@�'�1i)�#�5����5���0�������(@������(@��PFhi���XF�hh5i	|�h	�q�����B<�����0a�hhx���'!�%��<2Fj�c|��=Q�����F1��
���@������A�����D�!��B� |��K�h��E@#��C15i+x	�s�sXj �������8�����pi��
�h+��#%#
��F��0�h+��#�(�=#5#��>1��?��G��H!+x	�s��t2c��{��CA��I�#C�l���
��I1�j�(�a#`#��?!pi��>1
��G1�x��I���HA(���C1C���C1��JS�$V�j�U�(x	�p���T�BCW�O���K�^�y�yz�z\z�x@� A�!�D�$4�  �x]xy[y)C
CC� /�,��(@�=�0h'p0hGp0h�p0h!�p0h=FG`1h"��r�
Mr9F
��m���h0h1`0h�x2�B��x4	 L`���5*Б*��{��k�
 �Xz�f��!4"
����%'!��mP�h��l|	�p��t(�� � ��n���*eF��yzXzD�$�yXy���XxA��@	9�,O��Ӏ*Ыy�y"A�!��x"d��
D@�ÀO�'
O�O��	)xox�?)�B�!4"
�������	���
�({�	4�� U ��B��������ܝ� ��[%010d] @Error: scsi_get_verify_params() - Unsupported command = 0x%x.
Xz���K��yz@� ��-��0h$p0hDp0h�p0h!�p�h3h|	�p�p�	Cq�h|3hJF�p�p�	CXq�h3h|�p�p�
	C�q�h1h|�p��x�q0h#r0hDr�h1h|�p���
�r�h1h|�p����r1h"�	
��0ht�h0h-�`��%��Xy����y��-�  � F��Xy���у�xyC@�̃Xx�(@�! �O��F��������@��h�M|"���AF
�������F-@���h�|��@�|EF"O��c���������h�I|(������q�|�H���h@j�HF�p� p��F���	q�
������������F-S��h�||]FO��c	�����"���h���
|(������;�|�������	hI3�@��1�p� p�4�@IC����������R�F-��h�O�||AF�@���"O��c�{��h
|FXF������5�	|PF���h@�%�h�O|BF���F
�w��%(F��Xy�xy�x�D�$��i����Xx@��*@���DF h!D"
���h|	�p��X(� � 1hHp0h%�p0h!�p2h?#UFq(h(�!0h�q�h|	��9����0h�!�MAp0h"�0
���0h"�(0
����HhA�
!�B�0h0!�u0h/FF��!%�
p�- *�I����0h !"0
�����?��h3h|*F	�q��q
����h|IF�P8�-!��h|	�q�q0h"0
���h|	�w�
u��**�0hB� C�B���	w 09F"
��2hF�N�L�U��<�C�O�D%��D�sˀ
�uhF(�����$��8�с�M��=���Ԁ'8m�@=�@@��DF h!"
�G�0h�!Ap0h%�p�h1z	�p�����0h�!Aq�h1z	�p�����1hHy@�Hq�h1z	�p���8�1hHy2F@�Hq�h1%���F������DF h!@"
��0h!p0h�"Bp0h�p0h<%�p�h�
z	�s���"j�2h���5F��|�h	�p��P1��@%��������DF h!@"
���0h�!Ap0h<%�p0h!�q�h|	�p�ph#R�@j�PFh(�0h�r0h�s	�0h"�r0h�!�r0h�s0h�s�h|	�p���"���o��O�b1h������
�N�EB�"CE�eMa��	�p���1�O�s
�G�EB�"CE�b@%
`XFh'�DF h!O�r
�y�0h!p0h�#Cp2h)C��S�"
��0h�"0
��0h")F 0
�|�0h4!��$�h1z	�r���h���0h�	�@!2F��%�h|0h	�r�!&0"
�\��h|	�p��T(�� � 1h��8�h0h	|O�r<0	�q
�E�0F�h1O�u���F��<�1h p1h�"Jp1h�p�h	|	�q���)?�1hH"�p1h$q1h#Kq1h�q0hD"�q0h5)F"0
���h|	�q���`�0h !("0
���0h !"80
����0h�q("0
����h5h|"	�q�8�q
���L%`�`�1h"�p1h%
q1h$Lq1h�q0h#�q�h5h|	�p���	A�A)�|	�q����
	A�A�|	�q���	A�AA�|	�q���4F%
	A�A��2��F��0h!p0h�"Bp0h�p0h"�p�h|	�q���(�0h !
�s��0h�q
��%DF��k�h��	��S�-��%DF�I h*F
�z�0F�h�i� h�B`��i�i�J`	 ��Yy ���Yx�@� ��Xyy�,�Yx1�(јx0��x �0h����F�h0h�B�`�,FL`��Xy��(�!4"
���'���p�%���P' ���(������ ��k�hp�	�-�
 }�����z�����w�����t���1�q��h|LF�q���)d�hx�(�Iz)Zх(X�\�!4"
���'%�#��pQ�!��q1XF��r�%��uQh��vQ�h )�#�h��s1	|	�q��pA�y�(ѝ�s@���s�hhx����b�x����c��hd������?�{�(�O�0d�
�O�4k�d�h�h�hxD�	��0F�hhZ|e�
��\�|������$ ���~�(F)�8	(����*%!*�h
hk�xh"FC�	���$ >!"� (!� :!� D!�!!�$!� ! "� FF��D� Fl����[%010d] @Warning: scsi_handle_inquiry_cmd() - VPD page 0x%02x not implemented.
[%010d] @Error: Invalid SCSI command = 0x%x.
�F[%010d] @Error: ATAPI command 0x%x transfer length %u is > %u bytes.
�F[%010d] @Warning: scsi_ata_cmd_handler() status 0x%x for cmd 0x%02x not handled.
�Ft�-��C+F�FF�FO�	8h��B�O�zp	���
�t�d�ѤHh:F+F���	���O�	HF����;K���h�p
�
ppG�F
�jF�����J@��1aCP�4pCh+Aѝ�0[Bӝ�03�4ѝ�0�	#ҝ��	ҝ�@	ҝ�	
ҝ��ҝ��%�!
F� :!� Z!"� !!� (!�x�R��h(� ! '!�G!" � D!"��*���	L�"���! F
��O�A"O��c F��f���F�������-��O@��3FCC��'u�k�F)�%���)xQE�%��TI	h	�-���N��Q�|
h!�
�=C)B@��}M)hbi����O�WO�
)�GCx�:q�HD
`XD!F"	���x�F�(���XFy@0	��$�"	���"j��%�z��i;).FKDYF�DСi)��K�K���0.Ҳ�x?(�O�x2`E`�`Q�`!jv0�"b���!Hh��ˠ	�������.F�O�J?O�3"���0�ZPhA�A`�i�hA�@`���� �x�)�hA� `	�ZFE`R�`�`�H�hh�R�<��RF	��%(F����0���0�p��LF��E.hF
Fq�=��M@��4!\C�@*U
��M!@��6�@�S`���#
C���#J� `p��Hh��	�V� p��F[%010d] -> ahci_wait_complete() timed out! Rd: 0x%08x = 0x%08x, cmplt_val = 0x%08x.
�F������0�
FF4"��4
!hF	����"� '#�� !����0�J�� e�@��1aCQZ��I(� � �@��1�"Q�Y���� #�@��B�� 0� #�@��B��@0��iF" F����`�! F
F��P�0��H!"O��c����
�0�[%010d] @Error: Device fault!
�[%010d] @Error: Cmd slot %u is out of range.  Aborting.
�F���0�
FF4"��4
!hF	�h�'"�!�� � ��-��� � "iF�� �� F��-�`�! F
F����0��H!"O��c����
�0���MFO��0f"��� a`��
d�!
F	���H@��1��o��8o��xh8�0F!��#�0F!���8h�0F!���� d ` �g���� pG�F[%010d] @Error: Xfer length 0x%x exceeds max s/g list size!
�F�[%010d] @Error: Cmd slot %u busy. SACT = 0x%08x, CI = 0x%08x.
�[%010d] @Error: Failed to issue command slot %u. P%uCMD.ST not set.
�F������0�����-��O*F��x�{�K@��2�1�4qx�������"J�Jh:�j� !"��j�
�Jh�C� FF��_���������x�K_p��
�x������@���9�&z &z0q������x@9�bz bz�q�����x@9��z �zr����H��	�����pq��
��'p�r�y�����Dq�@$$��� !!��	���
�x���D��!Cr�����L
�!B���� F	�b� 	� �!" F	�Z���F8�-��OFH�!���" @!�	�H�xI�O&�@�F�a� �9hŠ*F�����!"HF	�0� 	���!"HF	�(��!"2#��������F���0F(���HF@��1�8����Q�!���"��� `����=�AF@��2O�`��O������� `��@!
F	���.`PF�����F�����0�-��C	�Q������Pxm��%-x�8h�(g�sN1h��*F��|L!i-[�0h@(���h�1h !a@(P�O�0h���@(I����� �8i�	�-�?�@F���@F��L� �d 	�_�	� �@F����h1h��R�`�c����0����C����	���
�1h���R����	����C���'���z���	@`(���	(������ �`O�qHF
F	�b�HFO�q"	�\���������������-��G��P�@��5F}C��&t h�F(��O�	ПH�0���8F�����H62h$N�I�Z��1hc�KF������8F�����	��8F�����Hh(*� l@���\q/���d�@D��
�1hI������d�@D���s��d!������d@`(��d$� ��d����0����J@��1�HC`#!��$[D������x��0�kL!hR���gH!"O�zs`����F�!hS���(F0�[I���h��pG�F[%010d] -> ahci_port_reset(%u)
[%010d] -> ahci_rx_error_isr() - err_cnt = 0x%x.
�F[%010d] Num of port resets = %u.
�F[%010d] @Error: ATA Cbk Queue Full!
�F�[%010d] -> ahci_fatal_error_recovery() - dev_status = 0x%08x, outstanding_cmd_slots = 0x%08x, force_comreset = %u.
[%010d] -> ahci_hba_reset()
�F�[%010d] @Error: HBA global reset failed!
�F���D��������0���-��O&L�F@��8�	�DD�����4
0��H!"���	���hF!4"	���'' ��p��T��)�� � O�z"��iF�� �HF��K��F��@�w�!HF
F����F��@�m��H!"A�X3�����M)h�F��@�_���F0��H"���` FRF	�e�-h�J(�
!�������X3�IO�  @�@&�����.#@D6�[O�!!A�A ���2�6!BD3�IO�  @�@"��Ѩo!�r����T@���| o�� ��p��~��\��j �ӵ����`��j ��������3���2����(��@����� ���0��@&�����!��db &�����B�@����c������0���O��w������h�B��l2�(��b��������!��t������$������^��t��o�p@�q�ɚB��B��p��"	�����@
��#p�����b"	�����o����O����HhH��� ������bVN@��7�	d�p������?�����O:�A8�QFӵ������A�AI����<�������3������	d���b �B�������b���FC���b������O���
�������@I�������T�O�j���������	d������� p����������R������ ����������	������0�H!
F���	�;�XF
�����F���[%010d] @Error: Naming authority for WWN must be IEEE!
@�8������0�-��OfM)hF�\+��0
XF���)h�� F���)h�����)h F���)hXF���!*"���yH@��8("����q��)h�����!*"���"�	q���)h������!*"�q��q�"��)h������t��z�p*�t)��(��n)h(�RF: o(�KF��`o(�HF������l�)hXF�h�NHAFqCA\#"��B�[+�� h)h��T)JF���R�`h)h(�RF:���I���z ���o�)h���@�)hb����;�)h�����6�)hXF�2� j)h(�RF:���)�)h�,���j����`k)h(�RF:���� l0�)h����
�0������&�b�)hC�CB�B����)hXF���)h�{�����`l)h��F��RF���)h��I Ġ���)hXF���)h"mǠ���)h�mϠ���)h��b נ���)hXF���)hݠ����������-��A�L�O�F@& h>ap�%������(F!�X� hm�B��>`����F[%010d] 
�F[%010d] ================================================
�F[%010d]              IDENTIFY DEVICE INFO
�[%010d]   Model:  %s
�F[%010d]   FW Rev: %s
�F[%010d]   Serial: %s
�FNo�Yes�F�[DRAT]�[RZAT]�[%010d]   TRIM Support: %s %s%s
�F�PI�[%010d]   Spec Compliance: ATA%s-%u
�F�[%010d]   Removable Media: %s
�[%010d]   Rotational Speed = %u RPM
�F�[%010d]   UDMA Modes = 0x%04x
�[%010d]   PIO Modes = 0x%04x
�F[%010d]   LBA48: %s
�F�[%010d]   Max LBA = 0x%08x %08x
�F�[%010d]   Write FUA: %s
�F�[%010d]   World Wide Name: N/A
[%010d]   World Wide Name = 0x%08x %08x
�F�[%010d]   SATA Speed: Gen%u
�F�[%010d]   NCQ Support: %s
�[%010d]   Queue Depth = %u
[%010d]   Logical Sector Size = %u bytes
�F[%010d]   Physical Sector Size = %u bytes
�[%010d]   Logical Sector Offset = %u
�F[%010d] ================================================

�0�����I-��O@��2��!�����
����I�e!)`O�!i`!����hh�O�MO�	L�B!�)hȠ������i��F����!JF0F���0FO�AJFO��c������F����������F���O�8hO�VO�bNCIF0��0�x�8hIFO�r0��0�o�����9h�$KF r��2`qC`��1�`�!
F��������R��H!"�# �������`�	�	F������/���/�+h�����F�F�Z� !PF"G�0S�� �!��h�FW�XFO��q@�
# ��]�F�)h �>��)h��H� h�P�<ʠ�1� ���/@������rH�Ih_F�h�'�_���_���_�������(�S���*�+�_�)hʠ�����Tr� ��T'�p"���/@����T(��O�q
F�����&�FoHO�paO�@r ��/nј�c(D����P�(?�)h۠����0F��o�0F����0F��@�(���&��H&`� ���1F��}��!
F����!"2#����F/;�+h��� �F�F��PF�!"G�0S ����FG����1��0F����!0F��n�F߹0F!��h�F����h��0F!����F/�)h �y�0F!��T�'8F��h0H��JO��1#` C� ��`_��������IC��0�����H@!$!`���	�0F�G8F�����F������0�����������[%010d] @Warning: SATA port is not idle on init!
�F[%010d] SATA Gen-%u speed negotiated.
����@���-��C����������'�L�H'`�v�O�{F%O�1�H�`
F7`����Ȓ0!:FHF��!HF
F��!"HF�
���=��� p`���>F����0F����� h@ `v����"hx����!h8F�(F����F[%010d] @Error: Timeout waiting for SATA device ready!
[%010d] @Error: Timeout waiting for PHY Ready. P%uSSTS = 0x%08x, P%uSERR = 0x%08x.
[%010d] @Error: ahci_classify_device() failed.
�-��C�O�F9h�FK�JF�Q��M@��0�	P���8�\L&���&`�;�HFAF���HF����TI�h!`��9hC��1�(h0��;u.`@��5����� )!"�������[%010d] Retrying SATA Gen-2 speed...
BK@��2PCPpG�F�=K�$;`Y`�`d��3���[%010d] @WARNING: DMA auto activate timeout!
�F[%010d] -> ahci_init()
[%010d] Connected to %u AHCI device(s).
�F�[%010d] -> ahci_reset_lun(%u)
�[%010d] @Error: ATA device busy! Re-initializing HBA.
�_y���58��x�(�-��ON0h@��'�����X�'����F�HH��
@(B��(���Hh+F�� 
������I��	h���0"��S� ��������Hh��(1#�"�C���F0��� F���X��F[%010d] AHCI fatal error! P%uIS = 0x%08x.
�[%010d] AHCI task file error! P%uTFD error = 0x%02x, status = 0x%02x.
�[%010d] AHCI interface fatal error!  P%uSERR = 0x%08x.
x�H�Lh�(	K�PF��RF$�������E�JQF1�$@F2��}ETF�\��,!��~5���3Z@SF���%PF��D����FQF�C�������		���
 ��Hh������		����C���		���z���	@`(���	$� ���	�BӝH��h�L����
�$���E�,
����}%���	h�����!����	���
 �nHh��b����	��������	���z���	@`(���	$� ���	��phV�{HyIh|K��J.1�	����@���":F ��s�qK�!��@D��`p���mLAp�� h�p���"�BaX��`	�PFG`��쓹�!����	���
 �AHh������	��������	���z���	@`(���	$� ���	�b�NHhSFPF��JH_`0�	��TF4���0���|[Iє����0B�� IFF��
� ��;K���;J����h���������AX����!����	���
 �Hh������	��������	���z���	@`(���	$� ���	 ��h
��0����HhF��� ��� ����	ӣHhK��u�O�`��(�� ����c� ���� ��q� F
F��������)��7`������F��81@0��L!h;��C�O�{E!h��!=��;�!h��!@��5�!h��!C��/�!h��!F��)�!h��!I��#�!h��!L���!h�� !O���!h��,!R���!h��0!U���!h��(!X���!h��4![����!h��8!^����0��F[%010d]  AHCI overflow status interrupt.
�F[%010d] AHCI port connect change.
�[%010d] SATA Reg Dump:
[%010d]  CLB  = 0x%08x
[%010d]  CLBU = 0x%08x
[%010d]  FB   = 0x%08x
[%010d]  IS   = 0x%08x
[%010d]  IE   = 0x%08x
[%010d]  CMD  = 0x%08x
[%010d]  TFD  = 0x%08x
[%010d]  SCTL = 0x%08x
[%010d]  SERR = 0x%08x
[%010d]  SSTS = 0x%08x
[%010d]  SACT = 0x%08x
[%010d]  CI   = 0x%08x
0����FFF.� Q�qHh(�#�oHP�$@��CC� #� 9F2F���F�H��-*���2h)1��#ah���0x��0:����h��0:����I��0J'���0y��0:@i[�B��#` `�Hh*F������a	!����(F��FJHHL�Ih#��G$cp���B�
F�1����b�v	(�(�(�
(�(
�(�}H3hh:F���� � �  p�h � x(���4
����	Q� )чB�'Hh(��CC�"#� !F"�h���a�!�`(�� !x)�!!1`�Kp�hF
FF+�#�HP�$@��CC� # 1F*F�@�RIx�(���2h+
��b
c�c#Kc&`p��`
"���� p��F@����2��~�BL!ha��7�@M&�����1!h@�+O�bO�  @�@���e�e����|��+hb�2F��v-".��-M!h*hg���!h�hl��
�O�{F!h��4!p���!h��8!t����!h�hx����!h*i~����!hjj�����jj!h���4�����!h�j�����!hjk�����!h�k�������4*��`���1!h���1�����!h��4*�����!h��0*����~���0�����[%010d] @Error - UAS Tx status = %u.
�F[%010d] @Error: Invalid gUAS_state[%u] = (%u) for ums_uas_send_rw_ready_iu().
�[%010d] [Index] UAS_state wTag CDB[0] gSATA_xfer_cmplt
N�FY�F[%010d]  [%02u] %02u 0x%02x 0x%02x %s
�[%010d] gCmdWaitingCount = %u
�[%010d] gRW_Ready_locked = %u
�[%010d] P0SACT = 0x%08x
�F�[%010d] P0CI = 0x%08x
�[%010d] gCurrentDataOutIndex = %u
�[%010d] gCurrentDataInIndex = %u
�F[%010d] gCmd_list_processing_index = %u
�F�[%010d] gCmd_index_list[%u] = %u
�F[%010d] gProcessing_index_decrement_count = %u
[%010d] gPendingData_OUT.xfer_pending = %u
[%010d] gPendingData_OUT.cmd_index = %u
�F�[%010d] gPendingData_IN.xfer_pending[%u] = %u, cmd_index = %u.
[%010d] gPendingData_IN.processing_index = %u
�[%010d] gPendingData_IN.index = %u
-��AF;H;N���8Oh
F(� F��J�Fڹ6H�h+�
+�+�	+���A�@F)F"F�������8F)F"F�������*>�(H�B��� *D��-�*#��#a
h���0���0*����X��0*����I��0:'���0y��0*@iR�B��"
`���h��1h"F�������bc�c!Ac���1h������~������@�0�������-��OF�N�H�L�F��h���O�
�E$����+�O��!��(����pi (Ӹ�ph�KJ������h��
O�cO�""B�B����J�J�h|CF�m��*F�k� FQF""�A�!�!p�y�����@��F`������
��QF��{��F���O�
a@�@���$��� ��hp��Hh
�(�[F���@��CC� #� !F����aFj��!���pi�B6�pj@�?pb����*ЪHh֠��������0h!
*�
"`�� H� �� ����P��@ (��XF��������@H� ����$H� �����F[%010d] ums_uas_start_data_xfer w/ UAS_state[%u] = %u.
[%010d] XFER ACTIVE w/ UAS_state[%u] = %u.
[%010d] ums_uas_start_data_xfer() - send RWIU status = %u
�[%010d] -> ums_uas_send_sense_iu() - cmd_index = %u, status = 0x%02x, tag = 0x%x, CDB[0] = 0x%02x, retry = %s.
���2MM-��O1LF0P0x�9�x��L ���1�c��P�J@��9	��QX�)� ��N��N`��|�(��(�� � ��M=O��<�$u��������F��𒀺�	:к������	(�
(� � �� ��(`�����
(𑀺��!YF0F��E������F��Hh�������h�g���biI�B��YF�Fm�(HO�h���(�XF�0F����(�l�J�H3�����0+X��0���h��0:�� D��b��0(�O� q��0
������0
����a��0
������ai@�B��XF�������� (�O� qh�2F��X�����@���Ix	����(���|����h���h�gbi���I�B�YF`����[%010d] ums_uas_tx_status = %u.
�-��O�L�FO�����R���0�����O�F�����
��P DK@��0PCX�x��A�(��(�
 	 ��(�  	���
x9h����� ������S����:�
�P7��������8x@��9	�������(|��
���9x	�����P�5jF(F��?�P��PF����%����
( ��Hh(�PF��
��F"Hh��и�#��bO�0 c��8�'gc����O�1RF��Q�����PF��n�����*|9h����  !"����PF!���������[%010d] @Error: STATUS_SCSI_ATA_ERROR!
�6���lL�jej(���f���hR�#p/1�/�@��b�?eb�����ah��V�# ��g*�*4�ah�m,�,��h��
� h@ `&�m�?�hV�!)����xJ��P0���R�<hC
�bhB� ``h���� h@ `�m�?%eb@�b�0�-��G���@KF�F��F��
�w�48hh"h@�*O�cO�  @�@����J�JKF����2F���H�Mh!"�F-(F��� (p8h@�h�MI���
h*�#��CC� #� )F"���AFx�(6� h(���,��cB(ؿ"��!��, C�!����"�("`h#���(7��((����g��(I )��!F	����a:h tQD���!!`�����F0���[%010d] @Error: Unable to determine UAS state for scsi_cmd = 0x%02x!
�F[%010d] @Error: ums_uas_process_cmd() - scsi_cmd = 0x%02x not supported!
�F@����-��AFRHRL�M��8�h�F$�y@��y((�MHh (!�AF����2[��1x��ph�YR�)h
/O�bC�C���<J<J�h|���yà2F�(��H�h
GF�B(B�"��#
������@��CC� #� !F���(�3�a�iFr�� ���xi�B
�xj@�?xb����)hĠ��������F[%010d] -> ums_uas_send_response_iu() - cmd_index = %u, resp_code = 0x%x, tag = 0x%x, retry = %s.
�MM���2�-��CyL�)h�"��� �5*f� ��|�v(�'�i�`V� |����P��i`�J��P0@��0XCX���ig`��������(<�O�	E��`i�B5ٰX@��� �;�������������Fx
հXRI@�	h��"Ϡ�[�H���i�����`h������&'���u��I�E��IF` h�������$��b�PX({���,��c�XXh�X"���ZP��I )�����"�I	h*U�9Hh(lѠh(i�`k ��kU� ):���4
����U�!�f)V�0�����&�(O���4
����'E�!p��4
��X�������!����(9���4
!���bi��@�B����������� ��j!k�k��S�� `c����J�@Q\�������0�����P#���SP��I )������K�����F@�[%010d] -> ums_uas_retry_send_sense_iu() - cmd_index = %u, status = 0x%02x, tag = 0x%x, CDB[0] = 0x%02x, retry = %s.
�F[%010d] ums_uas_tx_status = %u, gCurrent_status_index = %u.
�H�l9�h)� "yRF�  F�L�I`a	h���5���e!O�r(F��ai&��"FW�(ЙB:`�������0��E� `��@��["+�����0�F%��Hh���� ��� ������L!O�r��`���!O�r�`���!"�,���!�"��p��!O�r�Fp��!�"�$p��!�"�p�� �``` ` b`b�b�` a
���w�0��F[%010d] @Error: gTagUseCnt[%u] went negative!
��Hp�h��T���U��J�hH�`HF����`�CX{�C���P�a&FP��ciI�B��1���iH�I�h#�E	 �X�� ���p���JH�h �i�FL!�"���=�!O�r��`�6� ���� ��� ��G��H�I�J��J��I ��=�ZH�0h	�@h�������F�2�I0�� ���I ��I� ��~I ���H���MrL(h!O�b ����H)hO�b@!����J)h" dB�K@� ��0�p�xO��2$�%�m�m���+���+	�.�Ex�x�xC�#B�"�$
�Bx��Bx�|PC�Bx�
` Fp���0����O�L#FW�ov��B	��X.�.ҪB�
` �m"-�� �[%010d] -> ums_uas_init_queue_depth() - %u.
�F�[%010d] -> ums_uas_soft_reset()
�F�����F�N��1hh����L�*h�!����5
)#� ��|�����q`��hQ� 1h|i��k�xh d�h����h�b���"*� hP	�!�����1hU�"0b��R�`kX��kU�"(��j!k����� `c�P.�h�f-gu^aZcaa�`p��L�*h�!����5	)�!���)�!)P�F!��l��HU�"0hO�����4
��`h�f����U� (�pX�������!����x���4
!���bi��@�B����p�[%010d] -> ums_uas_reset()
�^���2��hI0�KiF "+����"�1Q�_%�d���0�` 0��F[%010d] -> ums_uas_data_OUT_pipe_callback() - sid = 0x%x.
�[%010d] Issue cmd 0x%x
[%010d] @Error: Cmd index %u is not Data-OUT (%u).
[%010d] @Error: Cmd index %u is not Data-IN (%u).
�����+I-��OF1�ici
hOh��
�B&�����c�]X��Z%��� ]Pfi��I�B��)�a�������2�� "F�#�����P�ibi�� ��aK�'�N��0������Q� =F�����<�(��i�QF	h��������"�0�����������p�a#P��@�B����@F�Ih
�#�G1 ��� K�'`i�B@�0�@F!jh���T!j�E�I�?!b2x�F*�*@���������(�0x(�0|�(� �p���?���b������Fx���C�C�������*F����(@𶀝�)P1�� p0x�P(c�(QF]����b	hp��@�@�2yC�C���n�`��P�(AѰx@
�@*Ѐ(�&�8$�08 �@8(�ఈ��"��{�����[�)�)�&K�`1F(F��
� h(Ŀ@R�!��!��x]!���� ��&�0�!���X� RH� w�	!u�F��n�x(6��K@��1ACXX0��H�E�\��!���&h`h0C�y]�H���P�hC� ``� �&h`h0C
�y]�H���h'��B�(F����L� K�%v&`F�QF	h����� %!"����!7�QF�	h��[��0xFJF������0x(����x(� N!���!��a� ����	�?
!���QF��	h��!(F��v�	����!t(!(F��������P.���[%010d] @Error: No cmd buff avail!
p�F�Hh(.��M,F i�!����5)� ��|��~����h�)X)� ��|��r����h!�����h� i!���� i!����px�h���p�p��L�H����
oh�����0*FҠ�:������p�����bi@�B�� ��� ��� ����(F!��r�p��F[%010d] -> ums_uas_handle_task_mgmt_IU() - task = 0x%x, task_tag = 0x%x, tag = 0x%x.
�F[%010d] @Error: Unknown IU_ID = 0x%x.
�[%010d] @Error: Invalid LUN!
�F[%010d] @Warning: UAS Tag 0x%x overlap for index = %u! gUAS_state[%u] = %u, IU_ID = %u.
�F�[%010d] @Error: Invalid IU_ID = 0x%x.
�`.��������-��OFsIJLxx�(�%F���0���p��O�"����2h��p5��!� ��"	h|P��@�@RF�p��U��������B@����ai@�B�� ����������@�B�� �FO������X��	���|SFq��*��x@*� ���X�(�	(}���|��(�(v�Hh(�PF��:�(m����h{����H�hhRF����`�PF!��P�[���~�������@D�`i@�������K��F@����x@?�xh���%	��O�%���%%ai�B0�O���	FF�F��BЪY�)�	)�)�
)�)ѡ���b����b!(F���xh
��H@x`�aim�B���	hc��� h���������F0���[%010d] -> ums_uas_ata_error_callback() - gUAS_state[%u] = %u.
[%010d] @Warning: gUAS_state[%u] is IDLE! gCommand_IU[%u]->CDB[0] = 0x%02x. wTag = 0x%x
�F�[%010d] -> ums_uas_ata_cmd_callback() - D2H Reg or PIO Setup FIS - CDB[0] = 0x%02x, gUAS_state[%u] = %u.
�F[%010d] pAtaCmdCbkData->dDataByteCnt = %u
�[%010d] @Error: ums_uas_ata_cmd_callback() - ATA error detected!
�F[%010d] @Error: ums_uas_ata_cmd_callback() - ATA error detected in SDB FIS!
�F���-��G�NNL1hT�@,����1hT�X,����1hT�,����1h�����B����%( `1hch*F����m-��%%`1h��*F��1h�h���{�1h�h���v�m-��1h���o�mL1h��8"���h�1h��� ���b�)M)L1h*h��P�<�P�<�h�P�<����M�'�F�F�F*h1h<	���P�<�P�<�P�<�h��:F����0�*h1h�\�P�,�P�,�P�,�h
�P:F�����/��������Fp�����,-��G�MFp�F�F�FO�zw �p@��� ���`h�
G�/G���-J@��/@���F1	hA��B8�AF�H�a`/`*��F0�����B��p����B�0@j��0

��k(�  O�}B�h!
0�@Y@�`�O�}A�i�a ����/��0
,���Hdh�"h&�������� �����F0���0��I²2���1���C��i"	FA���r��F�Hh"Fܠ�u��H!b���pG�F[%010d] GBUSERRADDR = 0x%08x.
�[%010d] GSTS = 0x%08x.
[%010d] LTSSM = 0x%08x.
�F�[%010d] Link State = %d.
�F[%010d] %u: 0xc174 = 0x%08x.
�F[%010d] EP%u:
�[%010d]   0xc178 = 0x%08x.
[%010d]   0xc17C = 0x%08x.
[%010d] 

�[%010d] Event Buffer ptr = 0x%08x
�[%010d] EP0 OUT TRB ptr = 0x%08x
�F[%010d] Setup Pkt TRB @ 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x.
�F[%010d] EP%u IN TRB @ 0x%08x : 0x%08x 0x%08x 0x%08x 0x%08x.
�F�[%010d] EP%u OUT TRB @ 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x.
���$LF�0���4���A$ j��i"@�FA�A0F��S��  b���
MB�wp �p@��� �C�`h�
�/� ���7�/��0
,�.�/�IHdh�"h&�,��1���~� ����-��A�MFF�F4�����Dl�4����Dl��t�a�h�`�`'g`hA�q"`:F�0F�����F���  b(i(�jHh��@(�0

�#LO��q:F F��O��qO�r F��@F���IN�OUT[%010d] @Error: DEPCMD (0x%08x) timed out on EP%u %s!
�[%010d] -> usb_hal_set_test_mode() - %u.
�F��0����J�#vL?Ih�ahcb��0�`K`"�`# �`F��e��j����0�F�0���L�L���A$`j�(F���"(F!F��g��  a
�����0��F,��Hh"F���b�`L�
O�~q�����pGpGPH�i)!��m���L!h���J�Hh��B*�*�!h���>���LO��q" F�e�O��qO�r F�^���I
(��1 ���@XpG���,-��O��
ŲF�1L�5���F���Aa�1�F���E���qj��/� @𰀦L�BЦL�B�'�'ULOb�F�������� h�

я�FtF����[����_C�dFF��Lj�K�,��Ds���k)�O�2O�@2&��
�tF��uO�<O�$
�0�dF��u)D�O�LO�LO�
��@�	�o�A�
+	I�	����E��8`F���kk�� �?���kc�E��+�.���)�	/�""kk#`#c`�`B�	�``jkv4�hc��E��ضE��!`Ff`�`� �`�b�/`$�c�,c
��`$@�L`�`F��`����������F���$ F����D�����d,���	
#!��#��FP���0����Jp�hFF*�O�p�H0��IO�c������4*F! ���.� !"F�����K�� !E�DB����.�� !"#����p��F[%010d] -> usb_hal_set_address() - addr: 0x%x.
[%010d] -> usb_hal_remote_wakeup()
[%010d] @Error: Link state = 0x%x. Can't send wakeup request.
��������---��O��`��F���FFƠ����P��LO�@AO�B F�� h��������4��ZL8h��<���`�t�&fa �a�� a������������`��,���h2FA�(oaNaP���` �p���`@�����`R��*`@���`�٘HyIh���b����O�s���2���,��0�K���b��r��4"�h���5A�#�B���5�!o�_
F�H���Ơ̢���H�O����hH��hA�1�B�O�a8F
F�I�JXF�-�@Fh)F�1�B�O�!8F
F�!�XF!2F��O�18F
F��O�1XF
F��@Fhp5�B�0F	!FF����0F!���� �b�b2 ������F@���0�0��H)Lh��@�@�@
�@�!h��*F��%�%�%�%�%!h-����-����-����-���¢ ��(F0�p�FHh2FŠ���L i(���m��
MO��q"(F��O��qO�r(F����H` `dp�0�������*Ih(��I�I�Jh*D�##"
`J`�`C��`F��"�%�7��JOŲFF5�����Eyt1����Ey��q
j-� �M.h8����Im����lC�I����P`#�BK`��,�`@�S�`������F��#����F[%010d] -> usb_hal_init()
�[%010d] USB Core Ver: 0x%04x.
�F�������0u��L h&ӥHh�������� FO�A"��� FO��O� "���
HhA��B�O�A F
F��� h���O��p����F<�0�
F"F!F����*FX��Ka!�qA����h��a`0��F���H�hƠ��~HO�A
F����F[%010d] USB SSC is %s.
OFFp�F�HF��&
B�C��c��C�s�0B�EB$���FAS F!��S� F!��&�p�0��"!FF��E�p��0���H�H8��$�A�a�[%010d] @Error Invalid connection speed in DSTS register = %u
.SUPER�FHIGH�F�FULL�F�UNKNOWNLOW[%010d] Connected at %s speed.
[%010d] -> usb_hal_function_wake_device() - interface_num = %u.
�F��,�,P��F�HhF�F�B�(�B�priH�-C�@s��
��hA�
'C�s�B�&
�C�S&
�$���G����
�$���C�sB�LB�G���4 F!���� F)F��`����0����H-��Ch(lНMO�	�����h�����<��L�hA��BҕI FF��f���P� i�@�" ���� i�@�"� ���� ���� ��� i&���k')�(�'�@�"# ��r� ���� i�@�#:F� ��f�� ���� i?&�@�:F#HF��Y�HF���� i�@�:FKF� ��M�� ����F��.`����F[%010d] -> usb_hal_disconnect()
�F�[%010d] -> usb_hal_connect()
�F�7���P��UIRKh
���(B���QJO���w�L2D�O�1�k���u�kJJ�jO�
��w�R,�)h��O�A�)h��O�A,�O�@6O�6<h4�<Hh��� �}k<h�Cd}c@��k<`O�EF��$$}k`%U`�`4C�`�j�Q`zk�yc�jI�E�b���b�hA��B�%JA!�qA����h��)�(������[%010d] @Error - attempt to configure next ring TRB with zero bytes remaining!
@� ��	0������--0����7�IH	hh)���� �Ժ �X��H�O��q"�T�	L $�` ``�����H!h�`�F�h�G��F��@�-��G�L��4��M��<���0�!hA�
���B���G@
�|�HF0h��G�B�`h(r�)h��/���
�/����/����/���F����:F���/H�/2�/
�PF@!"���O�p�� �k�����K"PFF�8`�h$h-$$�B�I)�ٽ��HFO��q"���HFO��qO�r������@!PF
F��� �b ��� �h�`)�AF	hY��G	�!h0Fo8�B���Z� �(� h�>�B�����)h/,�/�i�)�/�h�"�/�g��/�f��/�g��/�h��/�i��/�i�
�	/�j��
/�k��/�l�F�m�n�:F�H��G�9�"�?�r�O�p�� ����k(A�)hk��1�HF��h�
�Ҕ�<`'�c@�FN`���@!PF
F�I� �� h1Fo9�B����� h�>�Bӽ�� ��AF 	h�b �`!��G� �� h�>�B�@� �������<�8�0�����0��L%�`���� ��s�!HH%bh�`�F�h�G0��FSLEEP�FSUSPENDVBUS OFF�F�EARLY SUSPEND�F?�FON�[%010d] HS/FS/LS state = (0x%x) %s.
�F�U1�U2�U3�SS DISABLEDRX DETECT�FSS INACTIVEPOLLINGRECOVERY�F�HOT RESET�FCOMPLIANCE�LOOPBACK�F�U0�[%010d] LTSSM state = (0x%x) %s.
�F[%010d] Function Wake Device.
�=�8�-��O�����T
QF�����@���0���(��� ������������������$���,���4���8�F�vL��_����,"��,h��4�B����0��,��p�����DH,��%%����)��(O`F@�x�@��@c��6�@@�(�E���b��0�����@`��p����@`t0*@�W���A�ap	�-�KFCFPFh:F��������E���FPFh��KF0�p��;� hA�
!�B@�5�-@�2�E���1�����A���q����A�t1�i�hA��`������E���0�����@`��p����@`t0i(@��/@��� i1� ��p�  a*S��Hh*h�(�-@�(��-=Сi�aiɱ(�(XѾO 9h�a]����  ��1 a ��6� FiG� a!� 
F����FPFh���<�����)��-4���4)0���FPFh JF�!�'F  a8i#��FPFhJFϠ��  a i�`ip��-��o�M���0�PFhԠ��  a i(�(F�����Hh(@�z� ��z�� ��w����FPFh֠,�p�PFh�����Hh=C�1�����A���q����A�t1*
��J��v#�0����J��v
#0k��h�@h'�G�/
�h�O�:`�h���h�`�J`�
`0k@0c0k�B�� 0c0h(��(F����(��QF0h	h��jsk�:F����FIN�OUTp�PFhˠ�x�E���1�:����A���q8�[%010d] @Error: No more xfer resources on EP%d %s.
[%010d] @Error: Expiry of bus time on EP%d %s.
���A�t1
j*�?�Jjڱ+Jh
9���r�K��r�Kk[��Rh�h%�ER

�h�M�+`�i�h�h#�C��hOh�KhO����� �h�`�O`0�
`@��
Ңi*�Jhb�PFh����  a ��Y�g�L�bF��� J%ihE��G i(@�Z����F����1�l"�����r � �I	h`a�GD��F[%010d] @Error: XferNotReady(Data) during 2-stage transfer!
�F�[%010d] @Error: XferNotReady(Data-%s) when data stage should be complete.
�[%010d] @Error: XferNotReady(Data-%s) direction mismatch!
�[%010d] @Error: XferNotReady(Status) data stage failure!
�F[%010d] @Warning: Xfer not ready event on stalled EP%u %s.  Ignoring event.
�F�[%010d] @Error: Bus error occurred on Xfer in progress event!
��Gw��--�
8��FQF	h ���(��F[%010d] @Error: Bus error occurred on Xfer complete event!
-�KFCFPFh������1��F[%010d] -> usb_hal_config_next_trb() timed out - TRB_index = %u, buff 0x%08x, bytes_remaining = %u + last xfer.
���@���0F��&1F)��ID�I!�I�ÀI�I𸀉𱀆���{��`�'O�q�H�`h��(�ڀF8F�G��4�o��O�p`����!```h�b(�d!2! �I���� F����i(� �a��������i��)�'>F! i'f�Jff�� ���6�  b��8F���F[%010d] @Error: ZLP was expected but %u bytes was transfered.  Stalling EP0 OUT.
�F0� hA��Bj�PFhN��������b�PFhS�[��F[%010d] @Warning: Xfer complete event on EP%u %s when no xfer active!
�PFhK��PFhT���/�����,��F[%010d] @Error: EP%u %s - Unhandled endpt event type = %u. (event = 0x%x).
PFhG�2F�{����\�TH�`SHh(��O�����[%010d] -> usb_hal_handle_resume()
[%010d] USB Reset event occurred.
�[%010d] Disconnect event occurred.
[%010d] @Error:  Unhandled device event type = %u!
[%010d] @Error:  Event overflow occurred!
�[%010d] @Error:  Erratic error on UTMI!
�F�[%010d] @Error: usb_hal_isr() - Unhandled non-EP event = 0x%08x.
�F��8��I�H	h@�x@� ��O���L�h(�`h(� хH���H��r h ��1��]� � �~K�xֱ%\x�B�m�/�!,�"(�m�,�3D�z�yD�$��x.��9��I	hFF��"F�z� ��` �p��HdLh��pP��n`��*F3F�g��h )�-ح�.�&�.��z����!! 
F��������d��[`�-����\` p�LH��h)Ѱ�p *� ���I��[
hp	h� "���� �p��H?Mh��n`����2F���h$(�.؎��M�!! 
F��o������� F�3� � �`��Z`$[5�K,p Fp���J�Hhxph� "���� �x�! "iF��F�F޹�z�yiF"" ��<�D�$F~��M�(h"F����H0��B��")h� ����0Fx�x�! "iF�� �F����L
x h*F���H0��B��*!h� ��f�0Fx�&��<�1���|� "iF����F.2���x�x%D�$�m �*F��������x)��!Q��,Q��Q��a���`�C�`�E`hM�(h"F�l�tH0��B��")h� ���0F|�[%010d] @Error: No descriptor match found for type = 0x%x, idx = %u!
�F[%010d] -> handle_usb_set_interface() - num = %u, alt = %u.
�F�0���-��O�F;HhF"iF ��r�(�� g��
x0F*F���(�x�,>�O�	O�@O�
�Ox/�/�!/�$/�'��yb("�0F"F���/��x(Ѹ�и��������������!/%D&D��z�yA�!	�D1��$�$x,��L h�p!h/
�p!h
z� ���z���r�K�(��Hh� h!r�` ����,�[%010d] -> handle_usb_set_configuration() - val = %u.
���8��L`h(� �(�(�%� � iF��S�Fm��Hh"Jp��r ��B��
h� ���(F8�x��Mhh(� � iF"����F����L
x h�G����r x�Bؿ!h� ����0Fx�
(��7000��pG-��GFFiF �����F��DєM�(h
x�"���С��=�F�B+����x�)�F!�$T��|T��lV��!F "����!'�������F&���/�����$I(t��� hp���r x�Bؿ��� ����HF����-��G������p�F"iF ��7�(� M��
x8F*F����(�x�,.�O�	�Nx.�.	�0.�!.�$.���yb(�8F"F��0.��x����!.%D'D��z�yA�!	�D1��$�$x,��DF h�p!h/
�p�+�(�(Hh� h!r��P �����H�h(�iF��^��hF����F\�I���r �B��6Hh� ��"� F�8� "iF����F��.L� h
x�V�IHh(�(� h"�p h#�p h@#�q h��r x�Bؿ!h� ����(F8�|�<�jH�j0�FR+�R&�R ���R�:�:�RЏHhF���� ���-����P����r������������������������������F,�0��L��nP(F���� "F-��Z�!!�`0��H���n $FI�Iѐ�m)Ѱ�p	��X$��la���m !*�!e��eHh����� F�p��L��m%(�%�h(Ѵ�p� p���n YI&F08�@	�@�	h����� �f�	h��*F��(F��G�ef�	h��*F��(F��>�%f&0Fp�0�iL��p���(��O�Сh)� 0���n����m(
�(F���`k@� k0�-��-�(F���� 0��F@�RI0���p Hh(��� �-ر�n@ ��R
4�"�bd���l"�-�"Je� 0��e0�>I�h(б�p(� ё�l��@
�@	��Hh(���2���V� pG��������pG�H�� �)�� 	�����(�!!�Hh p�0���"H��p0+�� �Bh!*
��m�!�l�+�A��Hh ppG�L��p(� !��x�!"F�l�!Ph(��l��m�A��n�A�Pn�A��n�A�zHh p�<�[%010d] @Error: Descriptor type %u not supported!
�0�iL h"p!hgHJp�h)�)���p	� 0���l��@�@�%���h����{������F%�!h� "��+�(F0��F[%010d] @Error: Unhandled USB 2.0 feature %u.
�[%010d] @Error: Unhandled USB 3.0 feature %u.
�[%010d] -> usb_hal_set_U2_initiate_enable() - %u.
�[%010d] -> usb_hal_set_U1_initiate_enable() - %u.
�(��08�@	�����0-
-
*'$!��Hh(
� ��H�Ix	hR���� ���-�� ���r����������������������������������0���F��,�<�-��A�I��m�L��l&�`� 8� 8���m����FO�=�I
x!h<��`��'��0��'���lBF���l ��B�F�l�GFv��.���m(��/�6�B�!h����m!h���n���p���r ��l0E��s�8F����� "iF����nL��| p iF"����P���y��=��d��@�d�aHhO��O���F[%010d] @Error: Invalid standard request = %u.
[%010d] @Error: USB request type 0x%x is invalid.
�[%010d] @Error: Processing setup pkt failed!
�F[%010d] @Warning: Request is not supported:
�F�[%010d]   Setup Pkt: wLength = %u, bmReqType = 0x%02x, bRequest = 0x%02x, wValue = 0x%04x, wIndex = 0x%04x.
�F�[%010d] @Error: Config descriptor could not be processed!
���@�0�����y�(� � ����0��LF h(ыH��!���0����h��0"�BR`� ����-� �����!�a� ����-� h(у ����0��F�Hh"F���S� F�(-ـ(/��('ـI��@�@Ѐ��F	"$B`�iDb�h�`�
���O�bvHuIh#	 ��
�� �F!`�� ���� � ���� ���0�FeL�H$"j*5�*3�-�-	�h-������i�{������i]H`��iBhJ`"i*�*"
s"h*�*�	*рh�bh�h��`-�   b�i
"#� ����0�h�����0�EH#CbC`�`"a�iCa ����CHCJ�!����BI ���� ��4�!?L@J?K!`hp�Ph������0�1L�(���F�i-3�bk�i	-
� � F� ���-'����|�#�`�h�BؑB�!a`�h�`� `` ��  a(�O� rH�Ih	� ���� #��P���{ p(F0��F��<�I� `�I� ����I ����I! ��I�HJh�I���a�Hb�����F���(��USBSŨy��p����p�)M)hX��-��L�i)hhY��&��i)hBh\�� ��i)h�h_����i)h{c����i)hB{g����i)h�{j���&�i0�{m���v.��l�����i)h�hj����)h"jq����)h"hv����)h�hy����)h�h����p��F0���[%010d] -> ums_bot_case_handler() - case %u.
�FFAILED�PHASE_ERROR[%010d] -> ums_bot_send_CSW() - status = %s. CDB[0] = 0x%02x.
�[%010d] @Error: ums_bot_send_CSW() - gBOT_state = %u.
�[%010d] BOT CBW:
�F[%010d]  Sig = 0x%08x
�[%010d]  Tag = 0x%08x
�[%010d]  Xfer Len = 0x%08x
[%010d]  Flags = 0x%02x
�F�[%010d]  LUN = 0x%02x
�[%010d]  CDB = 0x%02x�F %02x�F
�F[%010d] gCSW->dDataResidue = 0x%08x
�F�[%010d] gBOT_state = %u
�F�[%010d] gBOT_case = %u
[%010d] gUSB_xfer_cmplt = %u
�F[%010d] gSATA_xfer_cmplt = %u
����6��9���P.�27�-��G�L�M����bjF*@�>�qh�i�N )�a
�h�B
�Q{A��{)�!�{�� !j(�>�)h�����i*�)h��#���ih3F�B��)h�����i0Bx2�)h��#���i0�x*�)hà#�v��i0x�*��)h̠�l�� ���� ����}I `�����h��؁`Q{@��9	����T'��0hiF0����8��� `b2h�8F�(
�0h)h�{ˠ�<��i�hi�y8�� `b�i�(�{� �8F� `bQ{	����T2�h9�(�(� � �{�)�(
�(�	 
 �(�(z� ���������iQ{�0h��8��b�{��90�h�b�h�`�{����h�0h0���`a`j�h(����O�2PFh# �����h`j�'(Ѳ��?�/���� �����)hŠ���� ��8� ��iA{	����T(�0h�0���aj�h)*�)@�n�h��i�h�B؁B� ``�h�`�!a`� ��@��h(�X��s�����(@�Q��h
� ��I� #��h�����(�Ȁ�i�h�B؁B��Ā
 ``�h�`���FUSBC0���0�����p� ��[%010d] @Error: Invalid CBW! Setting persistent STALL on BOT endpts. CBW ptr = 0x%08x.
[%010d] CBW length: %u bytes. (Should be %u bytes.)
�F�[%010d] CBW signature: 0x%x. (Should be 0x%x)
�[%010d] CBW LUN: %u. (Should be <= %u)
[%010d] CBW CB length: %u bytes. (Should be <= %u bytes)
�F[%010d] CBW Flags: 0x%02x.  (Should be 0x00 or 0x80)
	 ��\������(Ѣh*nЃI]� �������[%010d] @Warning: ums_bot_determine_state() - SCSI cmd 0x%x handled in default case.
!j*,�rh�h��`��h��`h
(�	(��i�{��x��ph�b���� i(� �`� �
 Q���o������O�bPFgIh	 ��)h���H�� ���� ���� ��*�����[%010d] @ERROR: xfer length is > 64 KB for non-wrap window xfer.
�F��I�
j*+�*)��i*�Bh�h��`��h`�h(��h(� �`� � � ������Hhj����� ��d� ��a� ���������0�F
x 2��Jx�*2�J�*/�ʈ*,щ�Q��Hhj���� F��o���� 0�"��*�Jx�*�J���ʈ*щ�y��I�MF$h*`O�0�T	h� ��1��`� F0��0��M�L)h�hW����h*
�*�*� h)h�{_���0� ��� h�{������
� ��m�0��(0�LF<�h`j)-�(�(.ѩxI�(� x��z����i�h�h�B��
qHh� ���� #��:��h(�  a� 
�eHhR��L�����0��x���/�0�[%010d] @Error: ums_bot_data_callback_OUT() - Invalid BOT state = %u.
�[%010d] @Error: ums_bot_data_callback_IN() - Invalid BOT state = %u.
�F[%010d] BOT Reset.
[%010d] -> ums_bot_ata_error_callback() - gBOT_state = %u.
[%010d] @Warning: ums_bot_ata_error_callback() - gBOT_state = %u. CDB[0] = 0x%02x.
[%010d] @Error: ums_bot_ata_cmd_callback() - ATA error detected!
�F��0���L�����QI� �`�$L�OI! ��NI F���MI� ����KH�I�	h# ��1��@�B�BI �
�pGA�?J �pG�FAH���H�h ��1���� �0�5M�K�I�xh
Uj�hM*Uˆ*��"h	� ���� 0��)I�K
�h�I
Uˆ*��"h	� ���� �p��JA��Mh$	IЉ�`!�Th�&k^Tƈ.��&h�� 2F)F�����ƈ	.��	&��$ Fp�AxI�I�I
Љ	�I�I� �������������������������pG�Ft�׫��������-��O|L�M"h��|¨I��l���t���t��F��7�h8x&@(����fT*������+��`F����,��x�xAx�xyB�"B�BA�!B�eA�AA�a)`��+��`F��\��<x'A�!A�AA�a
h��<p#hOF0F�T!hGFxT"hWF)+�T'hqJ�UqO"h(
�T��+�1F� 
FF��1F� 2F3F�������1F� 
FF��%�eL h�h@ҫh+���X������ �#���+��[H�\h`.���&��x�L5F'D�$��B�(F�A�m-��r�x�L�xHx5F'D�$@�(��B
���(F�+��(F��(F9F��m-��P�5F7F8F�[��@C/����F���!h%K
"ZT!hJFPT!hBF
PT"h3F1F8
�F�pi��	 ��@#hIF0F�T!hBFUFPT"hO�T#h�TO%h#!xU"hOM�T hO+T h��9T� h
I	"3F	� �����H�\�`0F����� ������0��pG@(Hx(� ����pGA(x�(B(C(D(E(F(G(H(h�((��-��CoNpH����O�q'@��2��9F`@F�:����D8F� gM,�`�K ( h`��������a��G�}�!"y��l��?�,�{����"F�7����4����C���/� 	Ӛ��*�`	ӛ��%��	Ӛ�� ��Ӛ��� Ӛ�������(h�!O�2���1h�J��O�3��1h�� "��1h����"F���1h�������1h��"F���4h��(�������!F������8F�� �
�����t���[���q�������;������]�DFO��F�j���
���
P���
�����q	h�����|P�G��
���z��
@`(��
$���z��
��q��&*������h(���`0����F0�����0���
========================================================
�||   TUSB926x Firmware v%u.%02u [%s %s]   ||
�FJan  5 201812:01:57�F�FPGA Version�F�   Device ID�F�||              %s: 0x%04X                  ||
========================================================

� Reset Flag(s): [External] [SW]�F [CPU]� [Watchdog] [Power-Up]

�[%010d] Datapath RAM Usage: %u / %u bytes.
[%010d] Supported NCQ Depth: %u
�F�[%010d] U1/U2 Transistions: %s
OFF[%010d] USB PHY Suspend: %s
�F�ON�[%010d] SATA LPM: %s
�FBusSelf�F�[%010d] Device is %s-powered.
�P9F�)�)�	)�
)�)ѹHh	9#��"B�F�@F�y���J�FF�Hh"�@Z@`�(��(
�	(�
(�(Ѡ�	�H8���H8$�����R���L#������M��p�(F%�(�	(�
(�(7ђM	8$"�@!F(F0�0�(F8�M�$"�@!F(F0�#�(F8!F"��p��M$�@"(F!F0��"(F!F8��!F(F
F08�
�,=�`,a�,`p�!����pGF*�*
�	*�
*�*Ѣ�	"��H
F�kH��uH!�@"��pGp��H�M��4hh)h@"Fz��� 	�)h�����M�h(
���hh(���C�� ���4ap�(��(�	(�
(�(сI���O	8#��"B��������F�"
�xI��sI1	h"��� � �� ����F � � pGF*
�*�	*�
*�*�2H	:�1H��;H!�@
F�m�pG[H0�$ 8`O��qb�!Ac%�d(F����m-��WHh� ��W� F!��
� !��� F��� !���� !F���� !���� !����0�DH?J0���!	h���h���@CCpG>H>J���!	h���h���@CCpG$���H���3H 8���!	h���/���@qO�@`�@q �B C@��pG<���(H�8���!
h&I���O9h���@rO�@`�@r�! �D �C
CC��F[%010d] -> gio_isr() - flags = 0x%08x.
[%010d]   Push button input detected.
�(���L��� ���0���<�!���D�����5���P���� O�}A�K�`�L���1�J��$"�`�a�a���LO�}E!h*lJ��b�!hjlP��]�!h�lT��X�!h�lZ��S�&7F!h��@u+h^�:F�I�!hkhd�:F�C�!h�hj�:F�=�!h�hp�:F�7�6/��!hu��/��!O�}@a�JBa�K�a�J`�apG"O�}A#
`�HK`�K�`<8`�`pGO�}A"�H
`"J`O�B
a@Ha�����H�!A`!A`h�	ґI	hh]����pGp�O�}E�L.l!hc����!hh�2F���!hjll����!h�lp����!h�lv����.dp��Hh��pGHh��@pG[%010d] MWW status = 0x%08x.
�F[%010d] MWW cntl = 0x%08x.
[%010d] MWW usb addr = 0x%08x.
[%010d] MWW sata addr = 0x%08x.
�F�[%010d] WIN%u blk offset = 0x%08x.
[%010d] WIN%u blk size = 0x%08x.
�F[%010d] WIN%u wrt offset = 0x%08x.
[%010d] WIN%u rd offset = 0x%08x.
�[%010d] 
�F[%010d] @Error: SATA MWW status = 0x%08x!
�[%010d] -> mww_error_isr()
[%010d]  status = 0x%x.
�F�[%010d]  control = 0x%x.
�F[%010d]  usb_AHB_addr = 0x%x.
�[%010d]  sata_AHB_addr = 0x%x.
<���0���`��@��J�I�hHh[
�h�BЋh[�{@��@o�b(� H`pG �`O�p`pG0��M�I , ` `H` !
F�c(F80����HO�q
F``(F����H�IhO��3O�a2�0!����b@�!�b
F(F��0��JhQshI��@o�(�!
(�
 PTI��@o(�!B� B�R��B�@��@o(� B�zH0hI
�O�q`����pG-��A%�F�FFF.F���v�����m8x(�Ѹ�Ѥ,	�e���0   ����d��6��
����mv��(F���p��(F��*�FB�������d	,���	,�+�'4����04.�K��(�*�- �0 � (pp��-��C�=h&�F��
?d�%(^��DF0)��O�	0)
�:)�`���0)��0���F��%,�38 �8�@�8Ѐ��%�#�BF�W�!FJF#��f��"
!CF	�������
�CF!BF��W������% ���v)xd)�u)�x)�X)�c)	��!FJFCF��;�����vm(x(��0F����C�pGI0�Fh�
ӈiIJ
,�
 �����$,p F0�H����"���H�������H�h(
џHh����]� ����� ���� �������L<��r@���l ��(�  �  a��w��  a�������L!h)
�)Ѵ�H����� � �h*��hCh�B�h� ����  `������yL!h)�)�  `� ��h*��hCh�B�sI	h��G ��h ���������p�lLF%<T��0F�Gm��p�gKF�F
8�3�"�r�X�G��`L!��jk`Ia���[I `��>�T4 h�G��UL!��ij`Ia���PI `��(�P4 h�G�LJh+(� ��Yfh�Q��th I`pG?I`pG?J
8�2� �pPpG:IT1`pG8J
4�8202 ��8PpG5I
h*(� ���dJh RJ`pG+IP1`pG
4�(J*J ��8(2PpG"H�!O�r�:�"L!p"��3� K"H J I�ah�`��0`�������HIJ������F[%010d] -> usb_stack_check_ep0_error() - STALLING EP0 OUT.
L�0���<�����l�����O�,�����ѽ��I�Khh��B�h�B�h�B�h�B��h�B���p��MF�!�t���ls`h��@(F�`
F^`��!F(F
Fp0��p��yHxLhO�zq�$ `YCB�IQ`O��q���� �!���� d!����O�! F
Fp0���! F
F8����gJdIhO�#@`x1`pG^J_IhO�3@`x1`pG�\L!!`���XHaah!a@�aTHO�1
Fp0��! F
F��������PHQLh h��A�OH#)`�)�)� � d!�u��HHGIhh*ѐ�`�	�` ��� �p�  `6H!x0`�5H!�0`pG9H�1LhA��B$�7M5J��1hF�B�2H�B���������!�`(h@�����
����� F@�A00���h���� �3� F!�0`��I!Khh��B�h�B�h�B�h�B��h�B���[%010d] Clearing ERDY mask on Stalled EP.
�<���������@��� ���D�@�@B�|��0���cI
h�
��@�`�bh@
��k��pG�]LFFF<C� �����R� F����8F����(@�B���-��C
F�O�		��NI��FO����:�@����8�O�W�D������DHh:�����H�D����� FC�F� C����'&%���� C@�P����>�ѓ�[�@FO�P C�����+��%�F� C����'&%���� C@�P���>��c�[�AFO�Q�!CC��p�+��HFAF"F��v�@F���H�"KL
`"J`@�bJa"
ch�a+�dO���d�KKe�`O�q
F�9��[%010d] Erasing SPI flash.
���0��������0�3J1Khd$��#O�zbjC����QC`0�+I��!	h)�d!!���&I"1�� `pG"I#J�#1��!`#K`hO�zbZC
ad!���������KIp�FhVhh3h~�S�!0I�tC)`O�zf������!�I`S�!0��O�za��������!Q`I��!`p��F�w����)H*J��#)I��O��!��$�!`pGp�����$MO��0��D `O�`` D�0O�D�,
 D�8(F��NO�AO�b0F��O�AO�R(F�x�O�AO��b(F�p�O�AO� b0F�i�HD�O� D�  D�@ D�p��F������`@ ��������S`FF�0�D�A�"A�%#�FA�%�BФ�dB�[�ѓBЛ[���0�0�A��F�
�"�F�B�[�Q�[[D�[��#F�B�R�KR�K��0�H���?�hy�P�+)��;I�;��� �P�)��pGH��IO�2@A�+��O�`h���	IO�``���������=���A��F,����p���U)�A�7)� p�x!��*O��Bxp*���(�
HNO�5`$h1`K�Th�&^Th"��1� ��7�!Fp�I@ ��ƻL���&q�I
H	hHC@@��q@�B8�
I`
JA�,#K`pGHN�Q0`J�\1`pGH�������S��$��tph���E�O�@D� ��F[%010d] ### SYSTEM RESET ###
H�h���)����F[%010d] @Error: Default ISR!
�F0���
HhJ��B�BA`�J��1`pGHhJ��2�B�J��A`pG�������������������������������� O�r@�0I@�0,O��0fHf�f�f`pG@���h
@�CC`pGh
@�CC`pG���n��P�	��j���Z@- t����������p
�F��	<�@�D�����T�0�������P�    0100TI-DSGATA     TI-DSG  TUSB926xTUSB9261       @@@@@@@

  • Hi Kurt,

    We are looking at your issue and schematic, and will try to get back to you by the EOD tomorrow, 2/28.

    Thanks,

    Ryan

  • I think I've identified my issue.

    In my design, the SS Tx lanes have AC coupling caps, where the Rx lanes do not:

    Per the development kit schematic for this chipset, it appears that both Rx and Tx pairs need caps:

    I can add these caps into the next iteration of the design and see if that helps, but I am still confused why these are necessary.

    Most of the other USB3 bridge chipsets that I work with have coupling caps on their Tx pairs, and the assumption is that Rx coupling will be handled by the host's own Tx pair. Is there a specific reason with this chipset that it would require coupling on both ends?

    Edit: Nnnope, misread that one. Cn1 was the SATA connector, which I should have been looking at J2.

    So I'm still at a loss as to why the read rate is so slow.

  • Hi Kurt,

    Sorry for the late reply. From what I can tell, I don't believe the read speed should be this low. I can't find anything on your design, at least right now, that would affect this.

    Is it possible on your side to grab a USB3 protocol trace and see what that reads back, or just confirm it is making that USB3 connection? In the mean time, I will take one of our EVMs on our side and see if I can emulate this, or if I don't see the issue.

    Thanks,

    Ryan

  • Dry contact discovered on one of the TX coupling caps during probing. Reflowing this segment resolved the discrepancy, now both Read and Write are equivalent (~250MBps).

    Thank you for your time in confirming the design.