@@ -76,49 +76,10 @@ enum opal_response_token {
* Derived from: TCG_Storage_Architecture_Core_Spec_v2.01_r1.00
* Section: 6.3 Assigned UIDs
*/
-#define OPAL_UID_LENGTH 8
#define OPAL_METHOD_LENGTH 8
#define OPAL_MSID_KEYLEN 15
#define OPAL_UID_LENGTH_HALF 4
-/* Enum to index OPALUID array */
-enum opal_uid {
- /* users */
- OPAL_SMUID_UID,
- OPAL_THISSP_UID,
- OPAL_ADMINSP_UID,
- OPAL_LOCKINGSP_UID,
- OPAL_ENTERPRISE_LOCKINGSP_UID,
- OPAL_ANYBODY_UID,
- OPAL_SID_UID,
- OPAL_ADMIN1_UID,
- OPAL_USER1_UID,
- OPAL_USER2_UID,
- OPAL_PSID_UID,
- OPAL_ENTERPRISE_BANDMASTER0_UID,
- OPAL_ENTERPRISE_ERASEMASTER_UID,
- /* tables */
- OPAL_TABLE_TABLE,
- OPAL_LOCKINGRANGE_GLOBAL,
- OPAL_LOCKINGRANGE_ACE_RDLOCKED,
- OPAL_LOCKINGRANGE_ACE_WRLOCKED,
- OPAL_MBRCONTROL,
- OPAL_MBR,
- OPAL_AUTHORITY_TABLE,
- OPAL_C_PIN_TABLE,
- OPAL_LOCKING_INFO_TABLE,
- OPAL_ENTERPRISE_LOCKING_INFO_TABLE,
- /* C_PIN_TABLE object ID's */
- OPAL_C_PIN_MSID,
- OPAL_C_PIN_SID,
- OPAL_C_PIN_ADMIN1,
- /* half UID's (only first 4 bytes used) */
- OPAL_HALF_UID_AUTHORITY_OBJ_REF,
- OPAL_HALF_UID_BOOLEAN_ACE,
- /* omitted optional parameter */
- OPAL_UID_HEXFF,
-};
-
/* Enum for indexing the OPALMETHOD array */
enum opal_method {
OPAL_PROPERTIES,
@@ -98,77 +98,6 @@ struct opal_dev {
struct list_head unlk_lst;
};
-
-static const u8 opaluid[][OPAL_UID_LENGTH] = {
- /* users */
- [OPAL_SMUID_UID] =
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff },
- [OPAL_THISSP_UID] =
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_ADMINSP_UID] =
- { 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_LOCKINGSP_UID] =
- { 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02 },
- [OPAL_ENTERPRISE_LOCKINGSP_UID] =
- { 0x00, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x01 },
- [OPAL_ANYBODY_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_SID_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06 },
- [OPAL_ADMIN1_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01 },
- [OPAL_USER1_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01 },
- [OPAL_USER2_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x02 },
- [OPAL_PSID_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xff, 0x01 },
- [OPAL_ENTERPRISE_BANDMASTER0_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x80, 0x01 },
- [OPAL_ENTERPRISE_ERASEMASTER_UID] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x84, 0x01 },
-
- /* tables */
- [OPAL_TABLE_TABLE]
- { 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_LOCKINGRANGE_GLOBAL] =
- { 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_LOCKINGRANGE_ACE_RDLOCKED] =
- { 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x01 },
- [OPAL_LOCKINGRANGE_ACE_WRLOCKED] =
- { 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x01 },
- [OPAL_MBRCONTROL] =
- { 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_MBR] =
- { 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00 },
- [OPAL_AUTHORITY_TABLE] =
- { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00},
- [OPAL_C_PIN_TABLE] =
- { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00},
- [OPAL_LOCKING_INFO_TABLE] =
- { 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 },
- [OPAL_ENTERPRISE_LOCKING_INFO_TABLE] =
- { 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00 },
-
- /* C_PIN_TABLE object ID's */
- [OPAL_C_PIN_MSID] =
- { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02},
- [OPAL_C_PIN_SID] =
- { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01},
- [OPAL_C_PIN_ADMIN1] =
- { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01},
-
- /* half UID's (only first 4 bytes used) */
- [OPAL_HALF_UID_AUTHORITY_OBJ_REF] =
- { 0x00, 0x00, 0x0C, 0x05, 0xff, 0xff, 0xff, 0xff },
- [OPAL_HALF_UID_BOOLEAN_ACE] =
- { 0x00, 0x00, 0x04, 0x0E, 0xff, 0xff, 0xff, 0xff },
-
- /* special value for omitted optional parameter */
- [OPAL_UID_HEXFF] =
- { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
-};
-
/*
* TCG Storage SSC Methods.
* Derived from: TCG_Storage_Architecture_Core_Spec_v2.01_r1.00
@@ -38,6 +38,116 @@ enum opal_user {
OPAL_USER9 = 0x09,
};
+/* Enum to index OPALUID array */
+enum opal_uid {
+ /* users */
+ OPAL_SMUID_UID,
+ OPAL_THISSP_UID,
+ OPAL_ADMINSP_UID,
+ OPAL_LOCKINGSP_UID,
+ OPAL_ENTERPRISE_LOCKINGSP_UID,
+ OPAL_ANYBODY_UID,
+ OPAL_SID_UID,
+ OPAL_ADMIN1_UID,
+ OPAL_USER1_UID,
+ OPAL_USER2_UID,
+ OPAL_PSID_UID,
+ OPAL_ENTERPRISE_BANDMASTER0_UID,
+ OPAL_ENTERPRISE_ERASEMASTER_UID,
+ /* tables */
+ OPAL_TABLE_TABLE,
+ OPAL_LOCKINGRANGE_GLOBAL,
+ OPAL_LOCKINGRANGE_ACE_RDLOCKED,
+ OPAL_LOCKINGRANGE_ACE_WRLOCKED,
+ OPAL_MBRCONTROL,
+ OPAL_MBR,
+ OPAL_AUTHORITY_TABLE,
+ OPAL_C_PIN_TABLE,
+ OPAL_LOCKING_INFO_TABLE,
+ OPAL_ENTERPRISE_LOCKING_INFO_TABLE,
+ /* C_PIN_TABLE object ID's */
+ OPAL_C_PIN_MSID,
+ OPAL_C_PIN_SID,
+ OPAL_C_PIN_ADMIN1,
+ /* half UID's (only first 4 bytes used) */
+ OPAL_HALF_UID_AUTHORITY_OBJ_REF,
+ OPAL_HALF_UID_BOOLEAN_ACE,
+ /* omitted optional parameter */
+ OPAL_UID_HEXFF,
+};
+
+#define OPAL_UID_LENGTH 8
+
+static const __u8 opaluid[][OPAL_UID_LENGTH] = {
+ /* users */
+ [OPAL_SMUID_UID] =
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff },
+ [OPAL_THISSP_UID] =
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_ADMINSP_UID] =
+ { 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_LOCKINGSP_UID] =
+ { 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02 },
+ [OPAL_ENTERPRISE_LOCKINGSP_UID] =
+ { 0x00, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x01 },
+ [OPAL_ANYBODY_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_SID_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06 },
+ [OPAL_ADMIN1_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01 },
+ [OPAL_USER1_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01 },
+ [OPAL_USER2_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x02 },
+ [OPAL_PSID_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xff, 0x01 },
+ [OPAL_ENTERPRISE_BANDMASTER0_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x80, 0x01 },
+ [OPAL_ENTERPRISE_ERASEMASTER_UID] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x84, 0x01 },
+
+ /* tables */
+ [OPAL_TABLE_TABLE]
+ { 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_LOCKINGRANGE_GLOBAL] =
+ { 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_LOCKINGRANGE_ACE_RDLOCKED] =
+ { 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x01 },
+ [OPAL_LOCKINGRANGE_ACE_WRLOCKED] =
+ { 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x01 },
+ [OPAL_MBRCONTROL] =
+ { 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_MBR] =
+ { 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00 },
+ [OPAL_AUTHORITY_TABLE] =
+ { 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00 },
+ [OPAL_C_PIN_TABLE] =
+ { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00 },
+ [OPAL_LOCKING_INFO_TABLE] =
+ { 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_ENTERPRISE_LOCKING_INFO_TABLE] =
+ { 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00 },
+
+ /* C_PIN_TABLE object ID's */
+ [OPAL_C_PIN_MSID] =
+ { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02 },
+ [OPAL_C_PIN_SID] =
+ { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01 },
+ [OPAL_C_PIN_ADMIN1] =
+ { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01 },
+
+ /* half UID's (only first 4 bytes used) */
+ [OPAL_HALF_UID_AUTHORITY_OBJ_REF] =
+ { 0x00, 0x00, 0x0C, 0x05, 0xff, 0xff, 0xff, 0xff },
+ [OPAL_HALF_UID_BOOLEAN_ACE] =
+ { 0x00, 0x00, 0x04, 0x0E, 0xff, 0xff, 0xff, 0xff },
+
+ /* special value for omitted optional parameter */
+ [OPAL_UID_HEXFF] =
+ { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+};
+
enum opal_lock_state {
OPAL_RO = 0x01, /* 0001 */
OPAL_RW = 0x02, /* 0010 */
The intent of this patch is to let the user select the desired table UID. Signed-off-by: Revanth Rajashekar <revanth.rajashekar@intel.com> --- block/opal_proto.h | 39 ------------ block/sed-opal.c | 71 ---------------------- include/uapi/linux/sed-opal.h | 110 ++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 110 deletions(-) -- 2.17.1