> Given ... your opinion that it's a firmware problem

We didn't just lose our test hardware, did we?  Tell
me no?  Please?

(-: As a firmware engineer, I'm prepared to claim,
"it's nearly always a host problem, not a firmware
problem". :-)  Even objectively speaking, we know here
talking enough like Windows works.

> > > Would just sending one read command via SG_IO,
> > > rather than going for the whole mount of a
> > > volume, teach us anything?
> >
> > 'dd if=/dev/scsi/.../disc ...' succeeds on a
> > freshly-inserted card.  Further reads tend to fail.
>
> Really?  I'd like to see a log of that....

Me too!

A log including at least the first failure, and the
last success before that, please?

> > "usb-storage: > usb_stor_transfer_partial(): xfer 4096 bytes"
> >
> > AIUI this message is logged before any data moves
> > and just indicates how much information is
> > expected.
>
> ... means a request for copying 4096 bytes.  After
> the transfer completes a status line is printed
> showing what actually happened.

Ah, thanks, in the fuller log sent since now I see
such context as:

usb-storage: Command INQUIRY (6 bytes)
usb-storage: 12 00 00 00 ff 00 00 00 6b 01 00 00
usb-storage: Bulk command S 0x43425355 T 0x1 Trg 0 LUN 0 L 255 F 128 CL 6
usb-storage: Bulk command transfer result=0
usb-storage: usb_stor_transfer_partial(): xfer 255 bytes
usb-storage: usb_stor_bulk_msg() returned -32 xferred 64/255

I'm a little surprised.  I guess here we're back at a
level of Linux not yet tweaked to talk op x12 like
Windows does?  Specifically, here we see
"-x 12 00 00 00 FF 00" -i xFF and not
"-x 12 00 00 00 24 00" -i x24?

> > How about sending a read command to an Lba beyond
> > the capacity?
>
> In other words, a command that should fail
> immediately rather than try to access the media?
> Interesting thought....

Not just any command that should fail, but a command
that should fail that the kernel will expect to
stream blocks quickly, presuming the kernel makes
such distinctions among commands without regard to
the parameters of the command.

> > Linux `dd` can... be persuaded to try reading
> > from a volume that hasn't yet been mounted?
>
> Yes, it can.  But since dd will go through sd.c,
> I don't see much point.

If a given SCSI command works anywhere in Linux, then
divining why it doesn't work during mount grows
easier?

> bInterfaceProtocol does, in fact, = x06 SCSI.

Ah, later I received the log line:
bInterface Class:SubClass:Protocol =   08:06:50

bInterfaceProtocol x06 may mean Windows sends
bCBWCBLength in x 06 0A 0C 10 rather than always x0C.
I have no idea what the effect on zero padding is.

> anyone know what Mac OS X does

Not me.  Mac Open Firmware boot Forth works ok, but
OS X currently has no SCSI pass thru i.e. no analogue
of Linux SG_IO, for the bootable PDT's x 00 05 07 0E.

> my recent suggestion that he try 8020 instead of
> SCSI, where such padding is done.

I replied before I received that, sorry.

> > "L 4096" here might mean
> > dCBWDataTransferLength = x1000 (4096)
> > = x00:08 * x200.
>
> Yes.

Thanks for saying.

Still I wonder if "CL = 10" means bCWBCBLength in a bus trace.

> ...

Cheers, Pat LaVarre


NHY޵隊X'u*m(ZW謞(z+i"v^y+)n 
)~ڝayZǨ)jp)W>alqz܂&v*reMzybn^elqz{.n+azV+֭ilqzlX)ߣbn^

Reply via email to