[BACK]Return to satareg.h CVS log [TXT][DIR] Up to [local] / sys / dev / ata

Annotation of sys/dev/ata/satareg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: satareg.h,v 1.1 2004/10/17 17:18:06 grange Exp $      */
                      2: /*     $NetBSD: satareg.h,v 1.3 2004/05/23 23:07:59 wiz Exp $  */
                      3:
                      4: /*-
                      5:  * Copyright (c) 2003 The NetBSD Foundation, Inc.
                      6:  * All rights reserved.
                      7:  *
                      8:  * This code is derived from software contributed to The NetBSD Foundation
                      9:  * by Jason R. Thorpe of Wasabi Systems, Inc.
                     10:  *
                     11:  * Redistribution and use in source and binary forms, with or without
                     12:  * modification, are permitted provided that the following conditions
                     13:  * are met:
                     14:  * 1. Redistributions of source code must retain the above copyright
                     15:  *    notice, this list of conditions and the following disclaimer.
                     16:  * 2. Redistributions in binary form must reproduce the above copyright
                     17:  *    notice, this list of conditions and the following disclaimer in the
                     18:  *    documentation and/or other materials provided with the distribution.
                     19:  * 3. All advertising materials mentioning features or use of this software
                     20:  *    must display the following acknowledgement:
                     21:  *     This product includes software developed by the NetBSD
                     22:  *     Foundation, Inc. and its contributors.
                     23:  * 4. Neither the name of The NetBSD Foundation nor the names of its
                     24:  *    contributors may be used to endorse or promote products derived
                     25:  *    from this software without specific prior written permission.
                     26:  *
                     27:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     28:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     29:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     30:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     31:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     32:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     33:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     34:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     35:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     36:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     37:  * POSSIBILITY OF SUCH DAMAGE.
                     38:  */
                     39:
                     40: #ifndef _DEV_ATA_SATAREG_H_
                     41: #define        _DEV_ATA_SATAREG_H_
                     42:
                     43: /*
                     44:  * Serial ATA register definitions.
                     45:  *
                     46:  * Reference:
                     47:  *
                     48:  *     Serial ATA: High Speed Serialized AT Attachment
                     49:  *     Revision 1.0 29-August-2001
                     50:  *     Serial ATA Working Group
                     51:  */
                     52:
                     53: /*
                     54:  * SStatus (SCR0) --
                     55:  *     Serial ATA interface status register
                     56:  */
                     57:        /*
                     58:         * The DET value indicates the interface device detection and
                     59:         * PHY state.
                     60:         */
                     61: #define        SStatus_DET_NODEV       (0x0 << 0)      /* no device connected */
                     62: #define        SStatus_DET_DEV_NE      (0x1 << 0)      /* device, but PHY comm not
                     63:                                                   established */
                     64: #define        SStatus_DET_DEV         (0x3 << 0)      /* device, PHY comm
                     65:                                                   established */
                     66: #define        SStatus_DET_OFFLINE     (0x4 << 0)      /* PHY in offline mode */
                     67: #define        SStatus_DET_mask        (0xf << 0)
                     68: #define        SStatus_DET_shift       0
                     69:        /*
                     70:         * The SPD value indicates the negotiated interface communication
                     71:         * speed established.
                     72:         */
                     73: #define        SStatus_SPD_NONE        (0x0 << 4)      /* no negotiated speed */
                     74: #define        SStatus_SPD_G1          (0x1 << 4)      /* Generation 1 (1.5Gb/s) */
                     75: #define        SStatus_SPD_G2          (0x2 << 4)      /* Generation 2 (3.0Gb/s) */
                     76: #define        SStatus_SPD_mask        (0xf << 4)
                     77: #define        SStatus_SPD_shift       4
                     78:        /*
                     79:         * The IPM value indicates the current interface power managemnt
                     80:         * state.
                     81:         */
                     82: #define        SStatus_IPM_NODEV       (0x0 << 8)      /* no device connected */
                     83: #define        SStatus_IPM_ACTIVE      (0x1 << 8)      /* ACTIVE state */
                     84: #define        SStatus_IPM_PARTIAL     (0x2 << 8)      /* PARTIAL pm state */
                     85: #define        SStatus_IPM_SLUMBER     (0x6 << 8)      /* SLUMBER pm state */
                     86: #define        SStatus_IPM_mask        (0xf << 8)
                     87: #define        SStatus_IPM_shift       8
                     88:
                     89: /*
                     90:  * SError (SCR1) --
                     91:  *     Serial ATA interface error register
                     92:  */
                     93: #define        SError_ERR_I            (1U << 0)       /* Recovered data integrity
                     94:                                                   error */
                     95: #define        SError_ERR_M            (1U << 1)       /* Recovered communications
                     96:                                                   error */
                     97: #define        SError_ERR_T            (1U << 8)       /* Non-recovered transient
                     98:                                                   data integrity error */
                     99: #define        SError_ERR_C            (1U << 9)       /* Non-recovered persistent
                    100:                                                   communication or data
                    101:                                                   integrity error */
                    102: #define        SError_ERR_P            (1U << 10)      /* Protocol error */
                    103: #define        SError_ERR_E            (1U << 11)      /* Internal error */
                    104: #define        SError_DIAG_N           (1U << 16)      /* PhyRdy change */
                    105: #define        SError_DIAG_I           (1U << 17)      /* PHY internal error */
                    106: #define        SError_DIAG_W           (1U << 18)      /* Comm Wake */
                    107: #define        SError_DIAG_B           (1U << 19)      /* 10b to 8b decode error */
                    108: #define        SError_DIAG_D           (1U << 20)      /* Disparity error */
                    109: #define        SError_DIAG_C           (1U << 21)      /* CRC error */
                    110: #define        SError_DIAG_H           (1U << 22)      /* Handshake error */
                    111: #define        SError_DIAG_S           (1U << 23)      /* Link sequence error */
                    112: #define        SError_DIAG_T           (1U << 24)      /* Transport state transition
                    113:                                                   error */
                    114: #define        SError_DIAG_F           (1U << 25)      /* Unrecognized FIS type */
                    115: #define        SError_DIAG_X           (1U << 26)      /* Device Exchanged */
                    116:
                    117: /*
                    118:  * SControl (SCR2) --
                    119:  *     Serial ATA interface control register
                    120:  */
                    121:        /*
                    122:         * The DET field controls the host adapter device detection
                    123:         * and interface initialization.
                    124:         */
                    125: #define        SControl_DET_NONE       (0x0 << 0)      /* No device detection or
                    126:                                                   initialization action
                    127:                                                   requested */
                    128: #define        SControl_DET_INIT       (0x1 << 0)      /* Initialize interface
                    129:                                                   communication (equiv
                    130:                                                   of a hard reset) */
                    131: #define        SControl_DET_DISABLE    (0x4 << 0)      /* disable interface and
                    132:                                                   take PHY offline */
                    133:        /*
                    134:         * The SPD field represents the highest allowed communication
                    135:         * speed the interface is allowed to negotiate when communication
                    136:         * is established.
                    137:         */
                    138: #define        SControl_SPD_ANY        (0x0 << 4)      /* No restrictions */
                    139: #define        SControl_SPD_G1         (0x1 << 4)      /* Generation 1 (1.5Gb/s) */
                    140: #define        SControl_SPD_G2         (0x2 << 4)      /* Generation 2 (3.0Gb/s) */
                    141:        /*
                    142:         * The IPM field represents the enabled interface power management
                    143:         * states that can be invoked via the Serial ATA interface power
                    144:         * management capabilities.
                    145:         */
                    146: #define        SControl_IPM_ANY        (0x0 << 8)      /* No restrictions */
                    147: #define        SControl_IPM_NOPARTIAL  (0x1 << 8)      /* PARTIAL disabled */
                    148: #define        SControl_IPM_NOSLUMBER  (0x2 << 8)      /* SLUMBER disabled */
                    149: #define        SControl_IPM_NONE       (0x3 << 8)      /* No power management */
                    150:        /*
                    151:         * The SPM field selects a power management state.  A non-zero
                    152:         * value written to this field causes initiation of the selected
                    153:         * power management state.
                    154:         */
                    155: #define        SControl_SPM_PARTIAL    (0x1 << 12)     /* transition to PARTIAL */
                    156: #define        SControl_SPM_SLUMBER    (0x2 << 12)     /* transition to SLUBMER */
                    157: #define        SControl_SPM_ComWake    (0x4 << 12)     /* transition from PM */
                    158:        /*
                    159:         * The PMP field identifies the selected Port Multiplier Port
                    160:         * for accessing the SActive register.
                    161:         */
                    162: #define        SControl_PMP(x)         ((x) << 16)
                    163:
                    164: #endif /* _DEV_ATA_SATAREG_H_ */

CVSweb