aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata/ata-all.h
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2010-06-06 14:09:48 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2010-06-06 14:09:48 +0000
commit351129c7bb979982c2ced90fe5b9e832d35e2b76 (patch)
tree8d15ee13aba6f1b5587fe05b81e00d17f1851923 /sys/dev/ata/ata-all.h
parent85bf7ec797fb3549c13b8954683be136ba531f94 (diff)
downloadsrc-351129c7bb979982c2ced90fe5b9e832d35e2b76.tar.gz
src-351129c7bb979982c2ced90fe5b9e832d35e2b76.zip
Some revisions of the Serverworks K2 SATA controller have a data
corruption bug where if an ATA command is issued before DMA is started, data will become available to the controller before it knows what to do with it. This results in either data corruption or a controller crash. This patch remedies the problem by adopting the workaround employed by Linux and Darwin: starting the DMA engine prior to sending the ATA command. Observer on: Xserve G5 Reviewed by: mav MFC after: 1 week
Notes
Notes: svn path=/head/; revision=208870
Diffstat (limited to 'sys/dev/ata/ata-all.h')
-rw-r--r--sys/dev/ata/ata-all.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h
index d7b3f4412d60..336f0e3966e0 100644
--- a/sys/dev/ata/ata-all.h
+++ b/sys/dev/ata/ata-all.h
@@ -564,6 +564,7 @@ struct ata_channel {
#define ATA_CHECKS_CABLE 0x20
#define ATA_NO_ATAPI_DMA 0x40
#define ATA_SATA 0x80
+#define ATA_DMA_BEFORE_CMD 0x100
int pm_level; /* power management level */
int devices; /* what is present */