Opened 20 months ago
Support for USB drives greater than 2TB
|Reported by:||pulkomandy||Owned by:|
Our current USB driver uses 32-bit LBA commands (READ_10, READ_CAPACITY_10, etc) to handle disk access. This works only for disks up to 2TB (4Gsectors). Disks larger than this report a "last sector" of 0xFFFFFFFF, which our code converts to a 0-sized disk.
Interestingly enough it is still possible to access the first 2TB of the drive, but the GPT add-on will be confused by partitions after the disk end, and DriveSetup will not allow initializing a 0-size drive.
The generic SCSI module uses the extended commands (READ_16, etc), however these are optional in the SCSI spec. So, we should first try the _10 variant and only switch to _16 when we detect a large drive, in order to preserve compatibility with the spec and with usual USB drives which will implement only the minimal set of commands required.