Variable Packet Writing
jdu at ashampoo.com
Tue Jul 19 06:39:17 PDT 2005
* From the T10 Reflector (t10 at t10.org), posted by:
* Jan-Eric Duden <jdu at ashampoo.com>
Regarding variable packet writing, as far as I know, this mode only=20
applies to CD writing and most DVD writing profiles expect fixed size=20
Here are some citations from MMC5r01a.pdf that should provide some help =
in understanding issues regarding packets and blocking.
For DVD-R and ( I think ) DVD-RW (Sequential Recording):
The FP bit, when set to one indicates that the packet type is fixed.=20
Otherwise, the packet type is
variable. This bit is ignored unless the write type is set to 0=20
(Packet). For DVD-R, this bit shall default to one.
For DVD-RW in (Restricted Overwrite Mode):
Writing from the Initiator into the media shall be in units of =
Writing shall begin and shall stop
at Blocking boundaries. The writable units may be sent via multiple=20
WRITE (10) commands. If a
Write does not begin on a Blocking boundary, the Logical Unit shall=20
return CHECK CONDITION
status and set SK/ASC/ASCQ values to ILLEGAL REQUEST/INVALID ADDRESS =
WRITE. If a
Write does not end on a Blocking boundary the Logical Unit shall return =
CHECK CONDITION status
and set SK/ASC/ASCQ values to ILLEGAL REQUEST/INVALID FIELD IN CDB.
220.127.116.11.1.1 ECC Blocks
The minimal writable entity on DVD+R is the 32KB ECC block. Physically, =
DVD+R is randomly
writable in 32KB ECC blocks, but not necessarily randomly readable. An=20
ECC block is not fully
decodable when it follows a blank area of media. In order to ensure=20
readability, ECC blocks shall be
written in sequential regions.
Since the Initiator=E2=80=99s perception is that the media is sector =
then in order to maintain
compatibility with other block devices, a DVD+RW Logical Unit shall be=20
able to also write single
sectors for its Initiator.
The Logical Unit is required to write DVD+RW media only in complete ECC =
blocks. So, the Logical
Unit shall often perform a read/modify/write function in order to=20
place the Initiator=E2=80=99s data in the correct
position within the ECC block. That works when the ECC block to be=20
written has already been
written. When the ECC block has never been written and the Logical Unit =
shall write less than a full
ECC block, then the Logical Unit shall create data. The correct method=20
is to zero fill sectors for which
no data is available.
Hope it helps.
MfG / Regards
ashampoo Technology GmbH & Co. KG
Wasim Sabir wrote:
>* From the T10 Reflector (t10 at t10.org), posted by:
>* Wasim Sabir <wasim.sabir at gmail.com>
>When writing a DVD in variable packet writing mode, is it necessary to
>align all writes to 16 block boundary? Could I write any varibale size
>packet such that linking between packets spans 16 block boundary?
>With kind regards,
>* For T10 Reflector information, send a message with
>* 'info t10' (no quotes) in the message body to majordomo at t10.org
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
More information about the T10