svn commit: r350736 - stable/12/sys/sys
Alexander Motin
mav at FreeBSD.org
Thu Aug 8 03:01:36 UTC 2019
Author: mav
Date: Thu Aug 8 03:01:35 2019
New Revision: 350736
URL: https://svnweb.freebsd.org/changeset/base/350736
Log:
MFC r348376 (by rpokala):
Add bits related to SANITIZE, SED, and form-factor to (struct ata_params)
Based on ATA-ACS-4, recognize several bit-fields related to the ATA SANITIZE
feature-set, Self-Encrypting Drives, and form-factor identification.
As part of this change, the name of word 48 of (struct ata_params) is being
changed. The previous name, "usedmovsd" does not appear to be related to the
previous definition of the word ("double-word IO supported"). The word was
defined that way in ATA-1 (1994), but it was marked "Reserved" (meaning
"unused, but might be used in the future") in ATA-2 (1996). It stayed that
way until ATA-8 (2008), which re-defined it as implemented in this change.
The field is not used in-tree.
Modified:
stable/12/sys/sys/ata.h
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/sys/ata.h
==============================================================================
--- stable/12/sys/sys/ata.h Thu Aug 8 02:29:42 2019 (r350735)
+++ stable/12/sys/sys/ata.h Thu Aug 8 03:01:35 2019 (r350736)
@@ -66,7 +66,8 @@ struct ata_params {
/*023*/ u_int8_t revision[8]; /* firmware revision */
/*027*/ u_int8_t model[40]; /* model name */
/*047*/ u_int16_t sectors_intr; /* sectors per interrupt */
-/*048*/ u_int16_t usedmovsd; /* double word read/write? */
+/*048*/ u_int16_t tcg; /* Trusted Computing Group */
+#define ATA_SUPPORT_TCG 0x0001
/*049*/ u_int16_t capabilities1;
#define ATA_SUPPORT_DMA 0x0100
#define ATA_SUPPORT_LBA 0x0200
@@ -92,6 +93,10 @@ struct ata_params {
/*057*/ u_int16_t current_size_1;
/*058*/ u_int16_t current_size_2;
/*059*/ u_int16_t multi;
+#define ATA_SUPPORT_BLOCK_ERASE_EXT 0x8000
+#define ATA_SUPPORT_OVERWRITE_EXT 0x4000
+#define ATA_SUPPORT_CRYPTO_SCRAMBLE_EXT 0x2000
+#define ATA_SUPPORT_SANITIZE 0x1000
#define ATA_SUPPORT_SANITIZE_ALLOWED 0x0800
#define ATA_SUPPORT_ANTIFREEZE_LOCK_EXT 0x0400
#define ATA_MULTI_VALID 0x0100
@@ -109,6 +114,7 @@ struct ata_params {
/*069*/ u_int16_t support3;
#define ATA_SUPPORT_RZAT 0x0020
#define ATA_SUPPORT_DRAT 0x4000
+#define ATA_ENCRYPTS_ALL_USER_DATA 0x0010 /* Self-encrypting drive */
#define ATA_SUPPORT_ZONE_MASK 0x0003
#define ATA_SUPPORT_ZONE_NR 0x0000
#define ATA_SUPPORT_ZONE_HOST_AWARE 0x0001
@@ -264,7 +270,19 @@ struct ata_params {
/*162*/ u_int16_t cfa_kms_support;
/*163*/ u_int16_t cfa_trueide_modes;
/*164*/ u_int16_t cfa_memory_modes;
- u_int16_t reserved165[4];
+ u_int16_t reserved165[3];
+/*168*/ u_int16_t form_factor;
+#define ATA_FORM_FACTOR_MASK 0x000f
+#define ATA_FORM_FACTOR_NOT_REPORTED 0x0000
+#define ATA_FORM_FACTOR_5_25 0x0001
+#define ATA_FORM_FACTOR_3_5 0x0002
+#define ATA_FORM_FACTOR_2_5 0x0003
+#define ATA_FORM_FACTOR_1_8 0x0004
+#define ATA_FORM_FACTOR_SUB_1_8 0x0005
+#define ATA_FORM_FACTOR_MSATA 0x0006
+#define ATA_FORM_FACTOR_M_2 0x0007
+#define ATA_FORM_FACTOR_MICRO_SSD 0x0008
+#define ATA_FORM_FACTOR_C_FAST 0x0009
/*169*/ u_int16_t support_dsm;
#define ATA_SUPPORT_DSM_TRIM 0x0001
u_int16_t reserved170[6];
More information about the svn-src-all
mailing list