Ignore:
Timestamp:
Nov 5, 2010, 1:40:22 PM (15 years ago)
Author:
markus
Message:

Heureka! Fixed problems on real hardware (AHCI enabled bit must be set explicitly for each command...)

Location:
trunk/src/os2ahci
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/os2ahci

    • Property svn:ignore
      •  

        old new  
        88*.out
        99*.map
         10TAGS
         11bldday.h
  • trunk/src/os2ahci/ahci.c

    r35 r36  
    546546  }
    547547
    548   /* clear any pending adapter-level interrupts */
     548  /* clear pending interrupt status */
    549549  writel(ai->mmio + HOST_IRQ_STAT, readl(ai->mmio + HOST_IRQ_STAT));
    550550  readl(ai->mmio + HOST_IRQ_STAT); /* flush */
     
    671671  ahci_start_fis_rx(ai, p);
    672672
    673   /* enable DMA */
     673  /* enable command engine */
    674674  ahci_start_engine(ai, p);
    675675
     
    752752  }
    753753
    754   /* disable DMA */
     754  /* disable command engine */
    755755  if ((rc = ahci_stop_engine(ai, p)) != 0) {
    756756    dprintf("error: failed to stop port HW engine (%d)\n", rc);
     
    847847  u16 cmd_max = ai->cmd_max;
    848848  int i;
     849
     850  /* Enable AHCI mode; apparently, the AHCI mode may end up becoming
     851   * disabled, either during the boot sequence (by the BIOS) or by
     852   * something else. The Linux AHCI drivers have this call in the
     853   * command processing chain, and apparently for a good reason because
     854   * without this, commands won't be executed.
     855   */
     856  ahci_enable_ahci(ai);
    849857
    850858  /* determine whether this will be an NCQ request */
Note: See TracChangeset for help on using the changeset viewer.