"Linux IDE Guy" Wants Option to Disable CPRM
Linux already disables the Processor Serial Number on Intel CPUs to prevent applications from reading it, and Hedrick's proposal would make a similar containment policy possible for CPRM.
In an interview with Linux Journal, Hedrick explained that CPRM, intended as a copy restriction feature, would create problems with important functionality such as making backups. And Alan Cox says CPRM will make it impossible to use disk defragmenting tools.
The following is Hedrick's mail to the T13 committee. Contact information for T13 committee officers and minutes of previous T13 meetings are available on the T13 home page.
Mr. Chairman,
I am request a Proposal Number to present the content below at the February meeting. Of course I am aware that I will need to get a 2/3 support in a roll-call vote of approval to allow adoption in to ATA-6; however, this is only necessary if "e00148rX" is adopted in the same fashion and rules during the February meeting.
Upon receiving the number I will submit the document to be reviewed by all.
The purpose of this offensive crossover feature set is to prevent a valid JAVA type CPRM tool from attempting to perfrom a CPRM action without the HOST first giving notice for enduser certification of the process.
Upon applying this method, T13 may prevent issues that may be deemed actionable by forcing the customer to choose to allow CPRM actions to be performed on their HOST. They must issue the passcode to unlock the feature block to allow CPRM HOST action to be performed.
Apply this constraint against the "e00148rX" and make it a feature that can be disabled and locked out if desired, then you will see better acceptance. This will provide the MPAA people with a method of stopping CPRM content from going to a device that does not allow CPRM features to be enabled. Everybody wins.
Finally, if CPRM proposal is removed from possible adoption, I will withdraw this proposal due to lack of symbiotic requirements. Additionally if this can be ammended to "e00148rX", then a new document will not be needed.
quoted material from another T13 member deleted - Ed.
I went full tilt to successfully stop/postpone this from being adopted at the last meeting in Irvine. If you look at the orginal unsanitized version of this proposal the e00148r0 (note totally rejected in October) verses the stripped down almost technical version of e00148r2, you get the real picture.
Now if you guys want to get me off the topic, you make e00148r3/4 for the meeting in February at Dell contain this addition.
New Command Pair: Set Features CPRM Lock. 0x4C and 0xAC (Yes I cleverly picked the pair to reflect their true nature) ---------------------------------------------------- These commands SHALL be included in all devices that support/enable the CPRM "e00148rX", which is now defined as OPTIONAL. Regardless if the CPRM key locks are supported, CPRM Enable:Disable SHALL be supported. ---------------------------------------------------- The Enable Feature command SHALL be set only by embedded HOST that do not have an External HOST to overide the feature. The Enable Feature command SHALL set a concatenated 32-bit passcode to hold the enable lock. INPUTS: Enable CPRM Mode Lock Feature 0x4C Sector Count .c3 Sector Number .c2 Cylinder Low .c1 Cylinder High .c0 Device Head obs|na|obs|DEV|na|na|na|na Command 0xEF Sector Count - Sector Number - Cylinder Low - Cylinder High - The .c3 .c2 .c1 .c0 SHALL compose a valid lock which will comprise and be limited to a 32-bit word size. The Enable concatenated passcode SHALL have two RESERVED Values 0xFFFFFFFF and 0x00000000. Device/Head - DEV is to indicate device selection. NORMAL OUTPUTS: Error na Sector Count .d3 Sector Number .d2 Cylinder Low .d1 Cylinder High .d0 Device Head obs|na|obs|DEV|na|na|na|na Status BSY|DRDY|DF|na|DRQ|na|na|ERR Sector Count - Sector Number - Cylinder Low - Cylinder High - The .d3 .d2 .d1 .d0 SHALL return the accepted passcode in the same format that was issued. Device/Head - DEV is to indicate device selection. Status register - BSY: shall be clear to zero indicating command completion DRDY: shall be clear to zero DF: (Device Fault) shall be clear to zero DRQ: shall be clear to zero ERR: shall be clear to zero ERROR OUTPUTS: Error na|UNC|na|IDNF|na|na|ABRT|na Sector Count reserved Sector Number reserved Cylinder Low reserved Cylinder High reserved Device Head obs|na|obs|DEV|na|na|na|na Status BSY|DRDY|DF|na|DRQ|na|na|ERR Error - UNC: shall be set to one if the passcode is not accepted. IDNF: shall be set to one if the passcode was never set. ABRT: shall be set to one if this command is not supported, if the passcode is not accepted, or if the passcode was never set. Sector Count - Sector Number - Cylinder Low - Cylinder High - Reserved: Device/Head - DEV: is to indicate device selection. Status register - BSY: shall be clear to zero indicating command completion DRDY: shall be clear to one. ERR: shall be clear to one if an Error register bit is set to one. ---------------------------------------------------- The Disable Feature command MAY be set only by any HOST. The Disable Feature command SHALL set a concatenated 32-bit passcode to hold the STATE of the lock and SHALL NOT be cleared to enable except by the External HOST. INPUTS: Disable CPRM Mode Lock Feature 0xAC Sector Count .c3 Sector Number .c2 Cylinder Low .c1 Cylinder High .c0 Device Head obs|na|obs|DEV|na|na|na|na Command 0xEF Sector Count - Sector Number - Cylinder Low - Cylinder High - The .c3 .c2 .c1 .c0 SHALL compose a valid lock which will comprise and be limited to a 32-bit word size. The Disable concatenated passcode SHALL have two RESERVED Values 0xFFFFFFFF and 0x00000000. Device/Head - DEV: is to indicate device selection NORMAL OUTPUTS: Error na Sector Count .d3 Sector Number .d2 Cylinder Low .d1 Cylinder High .d0 Device Head obs|na|obs|DEV|na|na|na|na Status BSY|DRDY|DF|na|DRQ|na|na|ERR Sector Count - Sector Number - Cylinder Low - Cylinder High - The .d3 .d2 .d1 .d0 SHALL return the accepted passcode in the same format that was issued. Device/Head - DEV: is to indicate device selection. Status register - BSY: shall be clear to zero indicating command completion DRDY: shall be clear to zero DF: (Device Fault) shall be clear to zero DRQ: shall be clear to zero ERR: shall be clear to zero ERROR OUTPUTS: Error na|UNC|na|IDNF|na|na|ABRT|na Sector Count reserved Sector Number reserved Cylinder Low reserved Cylinder High reserved Device Head obs|na|obs|DEV|na|na|na|na Status BSY|DRDY|DF|na|DRQ|na|na|ERR Error - UNC: shall be set to one if the passcode is not accepted. IDNF: shall be set to one if the passcode was never set. ABRT: shall be set to one if this command is not supported, if the passcode is not accepted, or if the passcode was never set. Sector Count - Sector Number - Cylinder Low - Cylinder High - Reserved: Device/Head - DEV: is to indicate device selection. Status register - BSY: shall be clear to zero indicating command completion DRDY: shall be clear to one. ERR: shall be clear to one if an Error register bit is set to one. ---------------------------------------------------- Standard Non-Data will be issued and the same error handling SHALL be observed; however the follow execption SHALL report with the content in the sub-set-features registers. ---------------------------------------------------- Additionally the Feature Support and Feature Enable Bits of the CPRM "e00148rX" proposal reflect in a manner that standard in the reported mode of IDENTIFY DEVICE. Once the Set Features CPRM Lock command is set, the bits in Words 83 and 86 SHALL be effected in the following manner, as it relates to the newly to be created "Copy Protection Feature Set Supported/Enabled". Word 83 "Set Features CPRM Lock Support" shall be set to one, if Word 83 for "Copy Protection Feature Set Supported" is set to one. Word 86 "SetFeatures CPRM Lock Enable" shall be set to one, if the HOST has issued a "Set Features CPRM Lock Disable Command" succesfully. The result of which set the "Set Features CPRM Lock Disable Enable" to one will also set and lock the "Copy Protection Feature Set Enabled" to zero. Therefore "Copy Protection Feature Set Supported" shall issue an ABORT to any HOST request to activate the "Copy Protection Feature Set" until the "Set Features CPRM Lock Disable" is cleared by the HOST. -------------------------------------------------
Regards,
Andre HedrickCTO Timpanogas Research GroupEVP Linux Development, TRGLinux ATA Development
email: dmarti@ssc.com