Re: Linux doesn't support bigger than 2TB IEEE-1394 disk

Stefan Richter
2009-05-04T14:45:32Z

Ronald wrote at linux1394-user:
> Linux doesn't support bigger than 2TB IEEE-1394 disk.
>
> Will Linux have new driver for this issue?

(Adding Cc: linux-scsi)

As far as I can tell, Linux does support IEEE 1394 disks of any size.
However, if I'm not mistaken, disks larger than 2 TB require that the
READ CAPACITY (16) command is used to check the disk's capacity, rather
than the usual READ CAPACITY (10) command. Somebody correct me if I'm
wrong.

By far most firmwares of IEEE 1394/ SBP-2 chipsets implement only the
RBC (Reduced Block Commands) command set specification, or at least
claim so in their INQUIRY response. If I understood correctly, the
Linux SCSI stack will never send READ CAPACITY (16) to them since this
command is not included in RBC.

It is only part of the more general SBC (SCSI Block Commands)
specification. But Linux won't also send READ CAPACITY (16) to disks
which claim SBC support, unless they also claim conformance to a
reasonably recent SCSI revision (I don't remember which one and am too
lazy to check). This is because older firmwares may crash if they
receive READ CAPACITY (16).

Ronald, do you know of a specific series of SBP-2 firmwares which do
actually support READ CAPACITY (16) properly but are treated by Linux as
if they wouldn't? If so, we could add a workaround to our drivers to
treat them like recent SBC implementations. We would have to match
against their firmware_revision field which you get logged in dmesg if
you load the sbp2 or firewire-sbp2 driver with the module parameter
workarounds=0x1000.

(Still, I could be mistaken and the problem might be something else than
which READ CAPACITY flavor to use. Maybe somebody more familiar with
the block oriented SCSI command sets could comment.)
--
Stefan Richter
-=====-=-=== -=-= -==-=