diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/common/pci/pci_strings.c | 7 | ||||
-rw-r--r-- | usr/src/uts/common/io/sata/impl/sata.c | 10 | ||||
-rw-r--r-- | usr/src/uts/common/sys/sata/impl/sata.h | 1 | ||||
-rw-r--r-- | usr/src/uts/common/sys/sata/sata_defs.h | 17 |
4 files changed, 23 insertions, 12 deletions
diff --git a/usr/src/common/pci/pci_strings.c b/usr/src/common/pci/pci_strings.c index 42501f5e05..0b04a06e7e 100644 --- a/usr/src/common/pci/pci_strings.c +++ b/usr/src/common/pci/pci_strings.c @@ -23,8 +23,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + */ #include <sys/types.h> #include <sys/stat.h> @@ -42,7 +43,7 @@ const pci_class_strings_t class_pci[] = { 1, 5, 0x20, "ATA controller with single DMA", "ata", 1, 5, 0x30, "ATA controller with chained DMA", "ata", 1, 6, 0, "Serial ATA Direct Port Access (DPA)", "sata", - 1, 6, 1, "SATA AHCI 1.0 Interface", "sata", + 1, 6, 1, "SATA AHCI Interface", "sata", 1, 6, 2, "Serial Storage Bus Interface", "sata", 1, 7, 0, "Serial Attached SCSI Controller", "sas", 1, 7, 1, "Serial Storage Bus Interface", "sas", diff --git a/usr/src/uts/common/io/sata/impl/sata.c b/usr/src/uts/common/io/sata/impl/sata.c index 2bab576495..67147e0c21 100644 --- a/usr/src/uts/common/io/sata/impl/sata.c +++ b/usr/src/uts/common/io/sata/impl/sata.c @@ -12803,7 +12803,9 @@ sata_show_drive_info(sata_hba_inst_t *sata_hba_inst, (sdinfo->satadrv_id.ai_features87 & SATA_SMART_SELF_TEST_SUPPORTED)) (void) strlcat(msg_buf, ", SMART self-test", MAXPATHLEN); cmn_err(CE_CONT, "?\t %s\n", msg_buf); - if (sdinfo->satadrv_features_support & SATA_DEV_F_SATA2) + if (sdinfo->satadrv_features_support & SATA_DEV_F_SATA3) + cmn_err(CE_CONT, "?\tSATA Gen3 signaling speed (6.0Gbps)\n"); + else if (sdinfo->satadrv_features_support & SATA_DEV_F_SATA2) cmn_err(CE_CONT, "?\tSATA Gen2 signaling speed (3.0Gbps)\n"); else if (sdinfo->satadrv_features_support & SATA_DEV_F_SATA1) cmn_err(CE_CONT, "?\tSATA Gen1 signaling speed (1.5Gbps)\n"); @@ -13764,7 +13766,11 @@ sata_fetch_device_identify_data(sata_hba_inst_t *sata_hba_inst, sdinfo->satadrv_features_support |= SATA_DEV_F_NCQ; if (sdinfo->satadrv_id.ai_satacap & - (SATA_1_SPEED | SATA_2_SPEED)) { + (SATA_1_SPEED | SATA_2_SPEED | SATA_3_SPEED)) { + if (sdinfo->satadrv_id.ai_satacap & + SATA_3_SPEED) + sdinfo->satadrv_features_support |= + SATA_DEV_F_SATA3; if (sdinfo->satadrv_id.ai_satacap & SATA_2_SPEED) sdinfo->satadrv_features_support |= diff --git a/usr/src/uts/common/sys/sata/impl/sata.h b/usr/src/uts/common/sys/sata/impl/sata.h index 5d03a0e696..c2454f0e48 100644 --- a/usr/src/uts/common/sys/sata/impl/sata.h +++ b/usr/src/uts/common/sys/sata/impl/sata.h @@ -376,6 +376,7 @@ typedef struct sata_pmport_info sata_pmport_info_t; #define SATA_DEV_F_SATA1 0x10 #define SATA_DEV_F_SATA2 0x20 #define SATA_DEV_F_TCQ 0x40 /* Non NCQ tagged queuing */ +#define SATA_DEV_F_SATA3 0x80 /* * Device features enabled (satadrv_features_enabled) diff --git a/usr/src/uts/common/sys/sata/sata_defs.h b/usr/src/uts/common/sys/sata/sata_defs.h index 9e803b9a23..049b42d60c 100644 --- a/usr/src/uts/common/sys/sata/sata_defs.h +++ b/usr/src/uts/common/sys/sata/sata_defs.h @@ -418,6 +418,7 @@ typedef struct sata_id { /* SATA Capabilites bits (word 76) */ #define SATA_NCQ 0x100 +#define SATA_3_SPEED 0x008 #define SATA_2_SPEED 0x004 #define SATA_1_SPEED 0x002 @@ -745,9 +746,10 @@ struct mode_acoustic_management { #define SSTATUS_SET_DET(x, new_val) \ (x = (x & ~SSTATUS_DET) | (new_val & SSTATUS_DET)) -#define SSTATUS_SPD_NOLIMIT 0 /* No speed limit */ -#define SSTATUS_SPD_GEN1 1 /* Limit Gen 1 rate */ -#define SSTATUS_SPD_GEN2 2 /* Limit Gen 2 rate */ +#define SSTATUS_SPD_NODEV 0 /* No device present */ +#define SSTATUS_SPD_GEN1 1 /* Gen 1 rate negotiated */ +#define SSTATUS_SPD_GEN2 2 /* Gen 2 rate negotiated */ +#define SSTATUS_SPD_GEN3 3 /* Gen 3 rate negotiated */ /* * sstatus IPM values @@ -794,10 +796,10 @@ struct mode_acoustic_management { #define SCONTROL_IPM_SHIFT 8 #define SCONTROL_SPM_SHIFT 12 -#define SCONTROL_DET (0xf << SSTATUS_DET_SHIFT) -#define SCONTROL_SPD (0xf << SSTATUS_SPD_SHIFT) -#define SCONTROL_IPM (0xf << SSTATUS_IPM_SHIFT) -#define SCONTROL_SPM (0xf << SSTATUS_SPM_SHIFT) +#define SCONTROL_DET (0xf << SCONTROL_DET_SHIFT) +#define SCONTROL_SPD (0xf << SCONTROL_SPD_SHIFT) +#define SCONTROL_IPM (0xf << SCONTROL_IPM_SHIFT) +#define SCONTROL_SPM (0xf << SCONTROL_SPM_SHIFT) #define SCONTROL_GET_DET(x) \ (x & SCONTROL_DET) @@ -812,6 +814,7 @@ struct mode_acoustic_management { #define SCONTROL_SPD_NOLIMIT 0 /* No speed limit */ #define SCONTROL_SPD_GEN1 1 /* Limit Gen 1 rate */ #define SCONTROL_SPD_GEN2 2 /* Limit Gen 2 rate */ +#define SCONTROL_SPD_GEN3 3 /* Limit Gen 3 rate */ #define SCONTROL_GET_IPM(x) \ ((x & SCONTROL_IPM) >> SCONTROL_IPM_SHIFT) |