Author: tychon
Date: Sun Mar 16 12:33:40 2014
New Revision: 263238
URL: http://svnweb.freebsd.org/changeset/base/263238

Log:
  Though there currently isn't a way to insert new media into an ATAPI
  drive, at least pretend to support Asynchronous Notification (AN) to
  avoid a guest needlessly polling for it.
  
  Approved by:  grehan (co-mentor)

Modified:
  head/usr.sbin/bhyve/pci_ahci.c

Modified: head/usr.sbin/bhyve/pci_ahci.c
==============================================================================
--- head/usr.sbin/bhyve/pci_ahci.c      Sun Mar 16 12:32:16 2014        
(r263237)
+++ head/usr.sbin/bhyve/pci_ahci.c      Sun Mar 16 12:33:40 2014        
(r263238)
@@ -95,6 +95,13 @@ enum sata_fis_type {
 #define        MODEPAGE_CD_CAPABILITIES        0x2A
 
 /*
+ * ATA commands
+ */
+#define        ATA_SF_ENAB_SATA_SF             0x10
+#define                ATA_SATA_SF_AN          0x05
+#define        ATA_SF_DIS_SATA_SF              0x90
+
+/*
  * Debug printf
  */
 #ifdef AHCI_DEBUG
@@ -1169,6 +1176,17 @@ ahci_handle_cmd(struct ahci_port *p, int
        case ATA_SETFEATURES:
        {
                switch (cfis[3]) {
+               case ATA_SF_ENAB_SATA_SF:
+                       switch (cfis[12]) {
+                       case ATA_SATA_SF_AN:
+                               p->tfd = ATA_S_DSC | ATA_S_READY;
+                               break;
+                       default:
+                               p->tfd = ATA_S_ERROR | ATA_S_READY;
+                               p->tfd |= (ATA_ERROR_ABORT << 8);
+                               break;
+                       }
+                       break;
                case ATA_SF_ENAB_WCACHE:
                case ATA_SF_DIS_WCACHE:
                case ATA_SF_ENAB_RCACHE:
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to