From 127008a26621c60fa8ca8f377801362ea4e46432 Mon Sep 17 00:00:00 2001 From: sos Date: Mon, 15 Mar 2004 13:21:41 +0000 Subject: Add printing of relevant SATA info where approbiate. --- sbin/atacontrol/atacontrol.c | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) (limited to 'sbin/atacontrol') diff --git a/sbin/atacontrol/atacontrol.c b/sbin/atacontrol/atacontrol.c index af171f2..e2c55aa 100644 --- a/sbin/atacontrol/atacontrol.c +++ b/sbin/atacontrol/atacontrol.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2000,2001,2002 Søren Schmidt + * Copyright (c) 2000 - 2004 Søren Schmidt * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -115,8 +115,15 @@ version(int ver) void param_print(struct ata_params *parm) { - printf("<%.40s/%.8s> ATA/ATAPI rev %d\n", - parm->model, parm->revision, version(parm->version_major)); + printf("<%.40s/%.8s> ", parm->model, parm->revision); + if (parm->satacapabilities && parm->satacapabilities != 0xffff) { + if (parm->satacapabilities & ATA_SATA_GEN1) + printf("Serial ATA v1.0\n"); + if (parm->satacapabilities & ATA_SATA_GEN2) + printf("Serial ATA II\n"); + } + else + printf("ATA/ATAPI revision %d\n", version(parm->version_major)); } void @@ -131,7 +138,15 @@ cap_print(struct ata_params *parm) ((u_int64_t)parm->lba_size48_4 << 48); printf("\n"); - printf("ATA/ATAPI revision %d\n", version(parm->version_major)); + printf("Protocol "); + if (parm->satacapabilities && parm->satacapabilities != 0xffff) { + if (parm->satacapabilities & ATA_SATA_GEN1) + printf("Serial ATA v1.0\n"); + if (parm->satacapabilities & ATA_SATA_GEN2) + printf("Serial ATA II\n"); + } + else + printf("ATA/ATAPI revision %d\n", version(parm->version_major)); printf("device model %.40s\n", parm->model); printf("serial number %.20s\n", parm->serial); printf("firmware revision %.8s\n", parm->revision); @@ -147,7 +162,7 @@ cap_print(struct ata_params *parm) else printf("\n"); - printf("lba48%ssupported ", + printf("lba48%ssupported ", parm->support.command2 & ATA_SUPPORT_ADDRESS48 ? " " : " not "); if (lbasize48) printf("%ju sectors\n", (uintmax_t)lbasize48); @@ -171,10 +186,17 @@ cap_print(struct ata_params *parm) parm->support.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no", parm->enabled.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no"); - printf("dma queued %s %s %d/0x%02X\n", - parm->support.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", - parm->enabled.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", - ATA_QUEUE_LEN(parm->queue), ATA_QUEUE_LEN(parm->queue)); + if (parm->satacapabilities && parm->satacapabilities != 0xffff) { + printf("SATA NCQ %s %s %d/0x%02X\n", + parm->satacapabilities & ATA_SUPPORT_NCQ ? "yes" : "no", + " -", ATA_QUEUE_LEN(parm->queue), + ATA_QUEUE_LEN(parm->queue)); + } + else + printf("dma queued %s %s %d/0x%02X\n", + parm->support.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", + parm->enabled.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", + ATA_QUEUE_LEN(parm->queue), ATA_QUEUE_LEN(parm->queue)); printf("SMART %s %s\n", parm->support.command1 & ATA_SUPPORT_SMART ? "yes" : "no", -- cgit v1.1