Re: usb-problems with Au1000

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

At 17 Jan 2002 11:02:03 -0800,
Pete Popov wrote:
> 
> On Thu, 2002-01-17 at 02:36, Kunihiko IMAI wrote:
> > Hi,
> > 
> > I'm trying SGI version of kernel-2.2.17.
> > And I get same message,
> > 
> > At Thu, 10 Jan 2002 18:40:24 +0100,
> > Wolfgang Heidrich wrote:
> > 
> > > hub.c: USB new device connect on bus1/1, assigned device number 3
> > > usb.c: USB device not accepting new address=3 (error=-145)
> 
> I'm surprised the sgi kernel works with usb at all.  We did a patch for
> non-pci usb devices which was not accepted by the usb project at that
> time because they were working on a different solution.

Of course, I patched usb-ohci code with memory mapped I/O support.
It is very ugly code, so Linux USB stuff will not accept, I think.

About two years ago, I ported USB OHCI to StrongARM SA1111 CPU and
SA1111 companion chip.  At that time, I suggested to the author of
usb-ohci.c that it should be better to support of memory mapped I/O
device, but it was not accepted.  On StrongARM, it has DMA memory
coherency problem, too. (Au1000 has bus snoop function, so this is not
a problem.)

> > The errata report says workaround method:
> > - set the CPU clock is 384MHz
> > - set the source of USB host controller is CPU clcck.
> > 
> > And the code:
> > 
> >         /*
> >          * Setup 48MHz FREQ2 from CPUPLL for USB Host
> >          */
> >         /* FRDIV2=3 -> div by 8 of 384MHz -> 48MHz */
> >         sys_freqctrl |= ((3<<22) | (1<<21) | (0<<20));
> >         outl(sys_freqctrl, FQ_CNTRL_1);
> > 
> > Comment says "Setup FREQ2" but the code set FREQ5.
> 
> It's the comment that's wrong, not the code. The code works and has been
> tested.  Alchemy makes available the Linux Support Package (LSP) which
> we did. That kernel has been tested with all peripherals so I would
> recommend that you get that from them.  Also,make sure your jumpers are
> setup correctly (S4).

In the source code:

	sys_clksrc |= ((4<<12) | (0<<11) | (0<<10));

	(snip...)

	outl(sys_clksrc, CLOCK_SOURCE_CNTRL);

This code sets the clock source of USB host controller is FREQ2.  So
FREQ5 clock source doesn't affect to USB host controller.


And I found HHL version of kernel source code in Pb1000 CD-ROM.  I'll
read it.


> I do have a better USB workaround which checks the CPU silicon rev, but
> I haven't had time to send Ralf an updated patch. The current setup.c
> should work though.  Get the latest LSP from Alchemy, check the S4
> jumpers (1-4 off, 5-6 on, 7-8 off), and let me know if it still doesn't
> work for you.

OK.  I checked S4 DIP SW, it was setted same config.
# Pb1000 documentation doesn't clearly explain at this configration.
# So I looked schematics of Pb1000.

This switch affects only J24 connector setting.  J2 connector is not
affected by S4.

Thanks.
_._. __._  _ . ... _  .___ ._. _____ _... ._ _._ _.._. .____  _ . ... _

                                                          Kunihiko IMAI

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux