This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SATA fully compatible to AHCI?

Other Parts Discussed in Thread: PMP

Hey there,
    We are doing some works on DM8168 SATA. As knows from datasheet, the SATA on Netra is AHCI compatible. While in the source code (kernel), we found it is registered as a platform device with "AHCI" after some basic init.

    However, when we look into the code, the register defined in "ahci.h" is not complete compatible to that in datasheet.  See as below:

We have the
    HOST_EM_LOC        = 0x1c, /* Enclosure Management location */
    HOST_EM_CTL        = 0x20, /* Enclosure Management Control */
    in our source code. But there are no discription in the DM8168 datasheet.

And also the HOST_CAP register, in the datasheet, its 16th bit is said to be reserved. But here we can see that the source code used this bit for some kind of use:
                        HOST_CAP_FBS


    /* global controller registers */
    HOST_CAP        = 0x00, /* host capabilities */
    HOST_CTL        = 0x04, /* global host control */
    HOST_IRQ_STAT        = 0x08, /* interrupt status */
    HOST_PORTS_IMPL        = 0x0c, /* bitmap of implemented ports */
    HOST_VERSION        = 0x10, /* AHCI spec. version compliancy */
    HOST_EM_LOC        = 0x1c, /* Enclosure Management location */
    HOST_EM_CTL        = 0x20, /* Enclosure Management Control */
    HOST_CAP2        = 0x24, /* host capabilities, extended */



    /* HOST_CAP bits */
    HOST_CAP_SXS        = (1 << 5),  /* Supports External SATA */
    HOST_CAP_EMS        = (1 << 6),  /* Enclosure Management support */
    HOST_CAP_CCC        = (1 << 7),  /* Command Completion Coalescing */
    HOST_CAP_PART        = (1 << 13), /* Partial state capable */
    HOST_CAP_SSC        = (1 << 14), /* Slumber state capable */
    HOST_CAP_PIO_MULTI    = (1 << 15), /* PIO multiple DRQ support */
    HOST_CAP_FBS        = (1 << 16), /* FIS-based switching support */
    HOST_CAP_PMP        = (1 << 17), /* Port Multiplier support */
    HOST_CAP_ONLY        = (1 << 18), /* Supports AHCI mode only */
    HOST_CAP_CLO        = (1 << 24), /* Command List Override support */
    HOST_CAP_LED        = (1 << 25), /* Supports activity LED */
    HOST_CAP_ALPM        = (1 << 26), /* Aggressive Link PM support */
    HOST_CAP_SSS        = (1 << 27), /* Staggered Spin-up */
    HOST_CAP_MPS        = (1 << 28), /* Mechanical presence switch */
    HOST_CAP_SNTF        = (1 << 29), /* SNotification register */
    HOST_CAP_NCQ        = (1 << 30), /* Native Command Queueing */
    HOST_CAP_64        = (1 << 31), /* PCI DAC (64-bit DMA) support */



I am a little confused about this, and maybe someone can offer me some help.

Thank you in advance....

  • Hi Jeff Gu,

    The SATA controller in DM8168 is compatible with AHCI version 1.1. The Linux AHCI platform code which you are referring to supports all versions of AHCI (1.0 , 1.1, 1.2). Also, the datasheet covers information which is related to only AHCI 1.1. Hence you might come across some code which does not have relevant information in our datasheet.

    The Enclosure Management Support (EMS) is an optional feature in AHCI 1.1 and the DM8168 SATA HBA does not support this. This is informed to the software using the EMS supported bit in the HBA Capabilities register.

    Some of the bits in the HBA CAP register are related to AHCI 1.2 hence you will see them as reserved in our datasheet. The FBS (FIS Based Switching) bit is one such bit.

    We also have a FAQ on SATA at http://processors.wiki.ti.com/index.php/TI_SATA_FAQ, this might also be helpful.

    Regards

    Mansoor