grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] Long USB transfers problem


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: [PATCH] Long USB transfers problem
Date: Sun, 20 Jan 2013 22:46:04 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.11) Gecko/20121122 Icedove/10.0.11

Committed, thanks

On 01.12.2012 23:46, Aleš Nesrsta wrote:

> Hi,
> I found some USB problem:
> 
> Some part of GRUB wants read "long" data block from USB mass storage
> device when GRUB opens USB disk, e.g. when "ls" command is entered first
> time after EHCI/UHCI/OHCI module is loaded.
> "Long" means data block of 0x8000 bytes length - it is not too much
> nowadays :-)
> 
> But:
> Some USB devices have too low limit of bulk data packet size, e.g. 32
> bytes or less - so, in such case the USB driver needs to use lot of
> Transfer Descriptors (TDs) to transfer 32Kbytes of data.
> Unfortunately, number of TDs is limited in GRUB driver(s) - and there is
> not enough TDs in this situation.
> The result is internal error, no data transfer is initiated by driver
> and error code is returned to calling function from usbms.c.
> 
> It is vary bad situation: USB device receives CBW command to transfer
> 0x8000 bytes - but transfer of data is never started because driver run
> out of TDs...
> Some devices could be automatically recovered from such situation and
> works normally later when GRUB tries read disk by smaller parts.
> But some devices remains confused even if they are reset by USBMS
> specific reset command.
> 
> So, I wrote simple experimental patch which splits "long" transfer into
> smaller parts - it looks to solve this issue.
> Patch solves only read transfer - AFAIK GRUB loader is not designed to
> write some data into disk, so there probably never be transfer of "long"
> data block in direction into USB mass storage device.
> Maximal size 2Kbyte of USB data transfer data block (defined in
> usbtrans.h) looks to be more or less optimal value.
> 
> It is probably not critical patch because this situation happens mainly
> if USB device is full speed device - i.e. this problem is related mainly
> to very old USB flash disks or some (older) special mass storage devices
> like GPS devices, cameras, card readers etc. - which will be probably
> never used as boot devices... (but - who knows...)  :-) 
> 
> BR,
> Ales
> 
> 
> 
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel



-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]