Fwd: Re: EHCI on armv6 with Write-Back caches

Ralf Wenk iz-rpi03 at hs-karlsruhe.de
Sat Dec 22 23:06:17 UTC 2012


> On Friday 21 December 2012 01:18:57 Oleksandr Tymoshenko wrote:
> > On 12/20/2012 10:56 AM, Hans Petter Selasky wrote:
> > > FYI - please test!
> > > 
> > > ----------  Forwarded Message  ----------
> > > 
> > > Subject: Re: EHCI on armv6 with Write-Back caches
> > > Date: Thursday 20 December 2012, 19:46:34
> > > From: Hans Petter Selasky <hselasky at c2i.net>
> > > To: Warner Losh <imp at bsdimp.com>
> > > CC: Andrew Turner <andrew at fubar.geek.nz>, Oleksandr Tymoshenko
> > > <gonzo at freebsd.org>, freebsd-usb at freebsd.org, alfred at freebsd.org,
> > > freebsd- wireless at freebsd.org
> > > 
> > > Hi,
> > > 
> > > I've run some basic tests over here (x86) which passed after some patch
> > > modifications. Please test and verify for your ARM targets:
> > > 
> > > http://svnweb.freebsd.org/changeset/base/244500
> > > http://svnweb.freebsd.org/changeset/base/244503
> > > 
> > > Please also verify that upgt and uwrt and uath still works like expected.
> > > 
> > > --HPS
> > 
> > if_smsc fails with following diagnostics:
> > smsc0: error: allocating USB transfers failed
> > 
> > The problem is that Bulk-In transfer buffer is 5 pages long but tag's
> > boundary limitation is
> > a page and it's impossible to allocate 5 pages without crossing page
> > boundary
> 
> Can you try again using this patch:
> 
> http://svnweb.freebsd.org/changeset/base/244535

Since revision 244503 I get an error after inserting an USB-stick in about
50% of the cases. The problem is still there with revision 244535.
My latest test was with revision 244582.

The kernel messages are:

root at raspberry-pi:~ # ugen0.4: <Kingston> at usbus0
umass0: <Kingston DataTraveler G2, class 0/0, rev 2.00/2.00, addr 4> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4101
umass0:0:0:-1: Attached to scbus0
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(probe0:umass-sim0:0:0:0): Retrying command
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(probe0:umass-sim0:0:0:0): Retrying command
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(probe0:umass-sim0:0:0:0): Retrying command
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(probe0:umass-sim0:0:0:0): Retrying command
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(probe0:umass-sim0:0:0:0): Error 5, Retries exhausted
ugen0.4: <Kingston> at usbus0 (disconnected)
umass0: at uhub1, port 3, addr 4 (disconnected)

When things go well they are:

root at raspberry-pi:~ # ugen0.4: <Kingston> at usbus0
umass0: <Kingston DataTraveler G2, class 0/0, rev 2.00/2.00, addr 4> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4101
umass0:0:0:-1: Attached to scbus0

root at raspberry-pi:~ # da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Kingston DataTraveler G2 1.00> Removable Direct Access SCSI-2 device 
da0: 40.000MB/s transfers
da0: 3817MB (7818240 512 byte sectors: 255H 63S/T 486C)

But even then there is something wrong now:

root at raspberry-pi:~ # gpart show da0
=>     34  7818173  da0  GPT  (3.7G)
       34  2097152    1  freebsd-ufs  (1.0G)
  2097186  5721021       - free -  (2.7G)

root at raspberry-pi:~ # mount /dev/da0p1 /mnt
g_vfs_done():da0p1[READ(offset=65536, length=8192)]error = 6
mount: /dev/da0p1: Device not configured


I am using a RPI-B kernel configuration with serial boot console and added
options MSDOSFS and GEOM_PART_GPT. With older revisions they worked. The
USB-stick is OK. I verified that with my PC.

Ralf



More information about the freebsd-arm mailing list