Module Name: src
Committed By: drochner
Date: Wed Oct 30 15:37:49 UTC 2013
Modified Files:
src/distrib/utils/sysinst: disks.c
src/sbin/atactl: atactl.c
src/sys/dev/ata: atareg.h
src/sys/dev/usb: umass_isdata.c
Log Message:
-recognize CF cards by the magic value in inquiry data
-kill CFG_ATAPI_MASK, didn't see anything in the specs supporting
that it exists
To generate a diff of this commit:
cvs rdiff -u -r1.128 -r1.129 src/distrib/utils/sysinst/disks.c
cvs rdiff -u -r1.71 -r1.72 src/sbin/atactl/atactl.c
cvs rdiff -u -r1.42 -r1.43 src/sys/dev/ata/atareg.h
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/usb/umass_isdata.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/utils/sysinst/disks.c
diff -u src/distrib/utils/sysinst/disks.c:1.128 src/distrib/utils/sysinst/disks.c:1.129
--- src/distrib/utils/sysinst/disks.c:1.128 Wed Oct 30 08:39:01 2013
+++ src/distrib/utils/sysinst/disks.c Wed Oct 30 15:37:49 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: disks.c,v 1.128 2013/10/30 08:39:01 mrg Exp $ */
+/* $NetBSD: disks.c,v 1.129 2013/10/30 15:37:49 drochner Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -259,7 +259,8 @@ get_descr_ata(struct disk_desc *dd, int
* Mitsumi ATAPI devices
*/
- if (!((inqbuf->atap_config & WDC_CFG_ATAPI_MASK) == WDC_CFG_ATAPI &&
+ if (!(inqbuf->atap_config != WDC_CFG_CFA_MAGIC &&
+ (inqbuf->atap_config & WDC_CFG_ATAPI) &&
((inqbuf->atap_model[0] == 'N' &&
inqbuf->atap_model[1] == 'E') ||
(inqbuf->atap_model[0] == 'F' &&
Index: src/sbin/atactl/atactl.c
diff -u src/sbin/atactl/atactl.c:1.71 src/sbin/atactl/atactl.c:1.72
--- src/sbin/atactl/atactl.c:1.71 Tue Aug 6 19:13:13 2013
+++ src/sbin/atactl/atactl.c Wed Oct 30 15:37:49 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: atactl.c,v 1.71 2013/08/06 19:13:13 soren Exp $ */
+/* $NetBSD: atactl.c,v 1.72 2013/10/30 15:37:49 drochner Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: atactl.c,v 1.71 2013/08/06 19:13:13 soren Exp $");
+__RCSID("$NetBSD: atactl.c,v 1.72 2013/10/30 15:37:49 drochner Exp $");
#endif
@@ -947,7 +947,8 @@ device_identify(int argc, char *argv[])
* Mitsumi ATAPI devices
*/
- if (!((inqbuf->atap_config & WDC_CFG_ATAPI_MASK) == WDC_CFG_ATAPI &&
+ if (!(inqbuf->atap_config != WDC_CFG_CFA_MAGIC &&
+ (inqbuf->atap_config & WDC_CFG_ATAPI) &&
((inqbuf->atap_model[0] == 'N' &&
inqbuf->atap_model[1] == 'E') ||
(inqbuf->atap_model[0] == 'F' &&
@@ -980,9 +981,13 @@ device_identify(int argc, char *argv[])
((uint64_t)inqbuf->atap_wwn[2] << 16) |
((uint64_t)inqbuf->atap_wwn[3] << 0));
- printf("Device type: %s, %s\n", inqbuf->atap_config & WDC_CFG_ATAPI ?
- "ATAPI" : "ATA", inqbuf->atap_config & ATA_CFG_FIXED ? "fixed" :
- "removable");
+ printf("Device type: %s",
+ inqbuf->atap_config == WDC_CFG_CFA_MAGIC ? "CF-ATA" :
+ (inqbuf->atap_config & WDC_CFG_ATAPI ? "ATAPI" : "ATA"));
+ if (inqbuf->atap_config != WDC_CFG_CFA_MAGIC)
+ printf(", %s",
+ inqbuf->atap_config & ATA_CFG_FIXED ? "fixed" : "removable");
+ printf("\n");
compute_capacity(inqbuf, &capacity, §ors, &secsize);
Index: src/sys/dev/ata/atareg.h
diff -u src/sys/dev/ata/atareg.h:1.42 src/sys/dev/ata/atareg.h:1.43
--- src/sys/dev/ata/atareg.h:1.42 Wed Jan 9 17:55:04 2013
+++ src/sys/dev/ata/atareg.h Wed Oct 30 15:37:49 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: atareg.h,v 1.42 2013/01/09 17:55:04 riastradh Exp $ */
+/* $NetBSD: atareg.h,v 1.43 2013/10/30 15:37:49 drochner Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer.
@@ -284,7 +284,7 @@ atacmd_tostatq(int cmd32)
struct ataparams {
/* drive info */
uint16_t atap_config; /* 0: general configuration */
-#define WDC_CFG_ATAPI_MASK 0xc000
+#define WDC_CFG_CFA_MAGIC 0x848a
#define WDC_CFG_ATAPI 0x8000
#define ATA_CFG_REMOVABLE 0x0080
#define ATA_CFG_FIXED 0x0040
Index: src/sys/dev/usb/umass_isdata.c
diff -u src/sys/dev/usb/umass_isdata.c:1.28 src/sys/dev/usb/umass_isdata.c:1.29
--- src/sys/dev/usb/umass_isdata.c:1.28 Wed Apr 3 17:15:07 2013
+++ src/sys/dev/usb/umass_isdata.c Wed Oct 30 15:37:49 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: umass_isdata.c,v 1.28 2013/04/03 17:15:07 bouyer Exp $ */
+/* $NetBSD: umass_isdata.c,v 1.29 2013/10/30 15:37:49 drochner Exp $ */
/*
* TODO:
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.28 2013/04/03 17:15:07 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.29 2013/10/30 15:37:49 drochner Exp $");
#ifdef _KERNEL_OPT
#include "opt_umass.h"
@@ -546,8 +546,8 @@ uisdata_get_params(struct ata_drive_data
* Shuffle string byte order.
* ATAPI Mitsumi and NEC drives don't need this.
*/
- if ((prms->atap_config & WDC_CFG_ATAPI_MASK) ==
- WDC_CFG_ATAPI &&
+ if (prms->atap_config != WDC_CFG_CFA_MAGIC &&
+ (prms->atap_config & WDC_CFG_ATAPI) &&
((prms->atap_model[0] == 'N' &&
prms->atap_model[1] == 'E') ||
(prms->atap_model[0] == 'F' &&