cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant
Participant
1,843 Views
Registered: ‎03-13-2016

Custom board xc7z010 + usb3320 dont work with usb mass storage only.

Hi everybody,

 

I have a xc7z010_1clg225 custom board based on Zynqberry. But i have a problem. My kernel log in attached.

 

My custom board work well all usb device (mouse , hub, usb-uart converter ... )  except usb mass storage. I have debug it in u-boot, i see that if command which send to usb mass storage with length = 512 status return error( status phase of bulk transport run into ">PHASE" case). Get max lun command return wrong valid.

 

I guessed that my problem is in pcb layout. In my design zynq in SOM board and USB3320 in extention board. Trace length with them is > 60mil.

 

I need recomended guides about pcb layout for ULPI pin of ZYNQ.

 

Thanks very much.

 

0 Kudos
4 Replies
Highlighted
Adventurer
Adventurer
343 Views
Registered: ‎12-26-2016

Re: Custom board xc7z010 + usb3320 dont work with usb mass storage only.

We had the same issue on our custom board. Funny enough we have the Zynqberry here too.

After some time and intense debugging sessions we found, that the PS_DDR_DM[0...3]_502 on the DDR chips are not wired correctly. There had been LDM and UDM swapped and therefore causing problems on anything that goes below 8 bytes and stored in the RAM. That goes for both of our two DDR chips on the PCB.

Tracelength was not a problem after all on our system as the signal are quite beautiful to see on the scope. @kieucua1503 maybe you have swapped LDM and UDM on your DDR chips too.

Happy to share
Thomas

Highlighted
Newbie
Newbie
190 Views
Registered: ‎03-04-2020

Re: Custom board xc7z010 + usb3320 dont work with usb mass storage only.

Hi tmaintz,

Can you have any advertise for me?

Thanks you and best regards,

ddr3_swapped_pin.png
0 Kudos
Highlighted
Adventurer
Adventurer
176 Views
Registered: ‎12-26-2016

Re: Custom board xc7z010 + usb3320 dont work with usb mass storage only.

That swapped DQ6 could be a problem. You can/should only swap inside byte-boundaries!
We had our issues only on USB mass storages, I guess the DDR is driven differently compared to ethernet (and that is after all done in the Linux drivers)
Imho you got 2 options:
1. Recreate the schematic and PCB, stay in byte boundaries and hope the best. Maybe simulations of your PCB design could help you find the error
2. Dig into linux' kernel architecture and modify the usb mass storage driver code and understand your compiler toolchain well; make sure DM0/1 are always driven identically in this case (dunno, just guessing as we did 1.). Then hope your driver modifications suit the actual problem. If not, continue with 1.

In both cases: good luck!
0 Kudos
Highlighted
Newbie
Newbie
147 Views
Registered: ‎03-04-2020

Re: Custom board xc7z010 + usb3320 dont work with usb mass storage only.

Hi tmaintz,

 

We will remake schematic and PCB with remove swap. My custom board only differently compared to reference design in DQx swap. My custom board based-on Zynq 7020 and 7045 work well at all, which no swap DQx pin. Maybe that is my problem.

 

Thanks you, when i finished, i will announce for you.

0 Kudos