Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

SMSC USB3300 Under Linux

Status
Not open for further replies.

banjo

Advanced Member level 2
Joined
Dec 24, 2005
Messages
648
Helped
127
Reputation
254
Reaction score
8
Trophy points
1,298
Activity points
8,064
I am trying to use an SMSC USB3300 under Linux 3 on a Power PC 405EX. The connection is ULPI and right now, I do not seem to be able to figure out what drivers are required. I enabled a bunch of USB stuff in the kernel. I also have the chip in the device tree and I enable the device in U-Boot by writing to a control register. As soon as I write the control register in U-Boot, the PPC 405EX seems to do some memory accesses to the SMSC chip. However, when the kernel loads, it loads some USB drivers, but does not seem to have any active USB devices.

Questions:

1. Any one have experience with OTG, Linux and this SMSC chip? There is a ULPI driver in the source folder, but it only gets enabled in menuconfig if you are running an ARM processor. Do I need a special driver? Or is the built into the PPC405EX?

2. The SMSC FAE just keeps telling me that the chip is a "dumb" PHY and that I need a SIE, Serial Interface Engine. Is said engine within the HW of the PPC 405EX, or is this another driver that I need to load? None of the PPC docs seem to detail much about the USB interface..

Note: I chose the SMSC USB3300 because it was on the PPC 405EX reference design, Kilauea. I thought if I used the same chip it would be a no-brainer to add USB support. Well, that has proved to be false!

I have a demo board of the Kilauea, but it uses Linux 2.6 and that Kernel and Ramdisk are not compatible with my board. When I boot the Kilauea board with Linux 2.6, the Kernel reports a Vendor ID and Product ID that I assume is from the SMSC chip, as nothing is plugged into the USB socket. When I boot my board on Linux 2.6 I get the USB driver loading, but never get any Vendor ID and Product ID. If I boot either the Kilauea demo board or my board under Linux 3, then I get some USB stuff loading, but not OTG and the USB device is not found on either board.

Thanks.
 

Well, I solved at least part of the mystery. The source code for the device tree that AMCC provides with their Kilauea board is WRONG. The source code should have included the line.

compatible = "amcc,usb-otg-405ex", "amcc,usb-otg";

The source code they provided on the CD that came with the development board was missing the "amcc,usb-otg" at the end of the line. The really bad part is what AMCC programs into their demo flash and the binary image of the flash sections provided on the CD have the corrected version. That is why the demo board always worked. My board has a different configuration, so I could not use the binary of their device tree, but had to build my own. Of course, all I had to base my device tree source on was their incorrect version, which has caused me tons of grief.

Be very wary of the Kilauea reference design. Apparently , whomever did this at AMCC knows nothing about source code control.

Note: the battle is not yet over. It still does not work on Linux 3. But that is a fight for another day.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top