git: f4f9054dc47b - main - camcontrol: Print 'transport revision'

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Tue, 24 Feb 2026 14:49:29 UTC
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=f4f9054dc47b430872d38c7a75fea753c6fe796f

commit f4f9054dc47b430872d38c7a75fea753c6fe796f
Author:     Dmitry Lukhtionov <dmitryluhtionov@gmail.com>
AuthorDate: 2026-02-23 14:42:59 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2026-02-24 14:48:58 +0000

    camcontrol: Print 'transport revision'
    
    As described in Serial ATA Revision 3.5a
    
    Reviewed by:    mav
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/2044
---
 sbin/camcontrol/camcontrol.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/sbin/camcontrol/camcontrol.c b/sbin/camcontrol/camcontrol.c
index c2deafbd81da..7ad177c3e4b6 100644
--- a/sbin/camcontrol/camcontrol.c
+++ b/sbin/camcontrol/camcontrol.c
@@ -1674,6 +1674,35 @@ atacapprint(struct ata_params *parm)
 	}
 	printf("\n");
 
+	printf("transport revision    ");
+	if (parm->transport_major == 0 || parm->transport_major == 0xffff) {
+		printf("Unknown");
+	} else {
+		if (parm->transport_major & 0x0400)
+			printf("SATA Rev 3.5");
+		else if (parm->transport_major & 0x0200)
+			printf("SATA Rev 3.4");
+		else if (parm->transport_major & 0x0100)
+			printf("SATA Rev 3.3");
+		else if (parm->transport_major & 0x0080)
+			printf("SATA Rev 3.2");
+		else if (parm->transport_major & 0x0040)
+			printf("SATA Rev 3.1");
+		else if (parm->transport_major & 0x0020)
+			printf("SATA Rev 3.0");
+		else if (parm->transport_major & 0x0010)
+			printf("SATA Rev 2.6");
+		else if (parm->transport_major & 0x0008)
+			printf("SATA Rev 2.5");
+		else if (parm->transport_major & 0x0004)
+			printf("SATA II: Extensions");
+		else if (parm->transport_major & 0x0002)
+			printf("SATA 1.0a");
+		else if (parm->transport_major & 0x0001)
+			printf("ATA8-AST");
+	}
+	printf("\n");
+
 	if (parm->media_rotation_rate == 1) {
 		printf("media RPM             non-rotating\n");
 	} else if (parm->media_rotation_rate >= 0x0401 &&