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

Annotation of sys/dev/pci/plx9060reg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: plx9060reg.h,v 1.2 2005/11/21 21:52:47 miod Exp $     */
        !             2: /*     $NetBSD$        */
        !             3:
        !             4: /*-
        !             5:  * Copyright (c) 2000 Zembu Labs, Inc.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Author: Jason R. Thorpe <thorpej@zembu.com>
        !             9:  *
        !            10:  * Redistribution and use in source and binary forms, with or without
        !            11:  * modification, are permitted provided that the following conditions
        !            12:  * are met:
        !            13:  * 1. Redistributions of source code must retain the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer.
        !            15:  * 2. Redistributions in binary form must reproduce the above copyright
        !            16:  *    notice, this list of conditions and the following disclaimer in the
        !            17:  *    documentation and/or other materials provided with the distribution.
        !            18:  * 3. All advertising materials mentioning features or use of this software
        !            19:  *    must display the following acknowledgement:
        !            20:  *     This product includes software developed by Zembu Labs, Inc.
        !            21:  * 4. Neither the name of Zembu Labs nor the names of its employees may
        !            22:  *    be used to endorse or promote products derived from this software
        !            23:  *    without specific prior written permission.
        !            24:  *
        !            25:  * THIS SOFTWARE IS PROVIDED BY ZEMBU LABS, INC. ``AS IS'' AND ANY EXPRESS
        !            26:  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-
        !            27:  * RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
        !            28:  * CLAIMED.  IN NO EVENT SHALL ZEMBU LABS BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            29:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            30:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            31:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            32:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            33:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            34:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            35:  */
        !            36:
        !            37: /*
        !            38:  * Register description for the PLX 9060-family of PCI bus
        !            39:  * controllers.
        !            40:  *
        !            41:  * In order for this file to be really useful to you, you'll want to
        !            42:  * have the PLX 9060 datasheet in front of you.
        !            43:  */
        !            44:
        !            45: #ifndef _DEV_PCI_PLX9060REG_H_
        !            46: #define        _DEV_PCI_PLX9060REG_H_
        !            47:
        !            48: /*
        !            49:  * PLX 9060 PCI configuration space registers.
        !            50:  */
        !            51:
        !            52: #define        PLX_PCI_RUNTIME_MEMADDR 0x10    /* memory mapped 9060 */
        !            53: #define        PLX_PCI_RUNTIME_IOADDR  0x14    /* i/o mapped 9060 */
        !            54: #define        PLX_PCI_LOCAL_ADDR0     0x18    /* PCI address of 9060 local bus */
        !            55:
        !            56: /*
        !            57:  * PLX 9060 Runtime registers, in PCI space.
        !            58:  */
        !            59:
        !            60: /* Local Address Space 0 Range Register */
        !            61: #define        PLX_LAS0RR              0x00
        !            62: #define        LASRR_IO                0x00000001
        !            63: #define        LASRR_MEM_1M            0x00000002
        !            64: #define        LASRR_MEM_64BIT         0x00000004
        !            65: #define        LASRR_MEM_PREFETCH      0x00000008
        !            66: #define        LASRR_MEM_MASK          0xfffffff0
        !            67: #define        LASRR_IO_MASK           0xfffffffc
        !            68:
        !            69:
        !            70: /* Local Address Space 0 Local Base Address (remap) Register */
        !            71: #define        PLX_LAS0BA              0x04
        !            72: #define        LASBA_ENABLE            0x00000001
        !            73: #define        LASBA_MEM_MASK          0xfffffff0
        !            74: #define        LASBA_IO_MASK           0xfffffffc
        !            75:
        !            76:
        !            77: /* Local Arbitration Register */
        !            78: #define        PLX_LAR                 0x08
        !            79: #define        LAR_LATTMR              0x000000ff
        !            80: #define        LAR_PAUSETMR            0x0000ff00
        !            81: #define        LAR_LATTMR_EN           0x00010000
        !            82: #define        LAR_BREQ_EN             0x00040000
        !            83: #define        LAR_DSGIVEUP            0x00200000
        !            84: #define        LAR_DSLOCK_EN           0x00400000
        !            85: #define        LAR_PCI21_MODE          0x01000000
        !            86:
        !            87:
        !            88: /* Big/Little Endian Register */
        !            89: #define        PLX_ENDIAN              0x0c
        !            90: #define        ENDIAN_CRBE             0x00000001
        !            91: #define        ENDIAN_DMBE             0x00000002
        !            92: #define        ENDIAN_DSAS0BE          0x00000004
        !            93: #define        ENDIAN_DSAERBE          0x00000008
        !            94: #define        ENDIAN_BEBL             0x00000010
        !            95:
        !            96:
        !            97: /* Expansion ROM Range Register */
        !            98: #define        PLX_EROMRR              0x10
        !            99: #define        EROMRR_MASK             0xffffffc0
        !           100:
        !           101:
        !           102: /* Expansion ROM Base Address (remap) Register */
        !           103: #define        PLX_EROMBA              0x14
        !           104: #define        EROMBA_BREQ_DC          0x0000000f
        !           105: #define        EROMBA_BREQ_EN          0x00000010
        !           106: #define        EROMBA_MASK             0xffffffc0
        !           107:
        !           108:
        !           109: /* Local Bus Region Descriptor for PCI to Local Access Register */
        !           110: #define        PLX_LBRD                0x18
        !           111:
        !           112:
        !           113: /* Local Range for Direct Master to PCI */
        !           114: #define        PLX_DMRR                0x1c
        !           115:
        !           116:
        !           117: /* Local Bus Base Address for Direct Master to PCI Memory */
        !           118: #define        PLX_DMLBAM              0x20
        !           119:
        !           120:
        !           121: /* Local Bus Base Address for Direct Master to PCI IO/Config */
        !           122: #define        PLX_DMLBAI              0x24
        !           123:
        !           124:
        !           125: /* PCI Base Address (remap) for Direct Master to PCI Memory */
        !           126: #define        PLX_DMBPAM              0x28
        !           127:
        !           128:
        !           129: /* PCI Base Address (remap) for Direct Master to PCI IO/Config */
        !           130: #define        PLX_DMPBAI              0x2c
        !           131:
        !           132:
        !           133: #define        PLX_MAILBOX0            0x40    /* Mailbox register 0 */
        !           134: #define        PLX_MAILBOX1            0x44    /* Mailbox register 1 */
        !           135: #define        PLX_MAILBOX2            0x48    /* Mailbox register 2 */
        !           136: #define        PLX_MAILBOX3            0x4c    /* Mailbox register 3 */
        !           137: #define        PLX_MAILBOX4            0x50    /* Mailbox register 4 (not 9060ES) */
        !           138: #define        PLX_MAILBOX5            0x54    /* Mailbox register 5 (not 9060ES) */
        !           139: #define        PLX_MAILBOX6            0x58    /* Mailbox register 6 (not 9060ES) */
        !           140: #define        PLX_MAILBOX7            0x5c    /* Mailbox register 7 (not 9060ES) */
        !           141:
        !           142:
        !           143: #define        PLX_PCI_LOCAL_DOORBELL  0x60    /* PCI -> local doorbell */
        !           144: #define        PLX_LOCAL_PCI_DOORBELL  0x64    /* local -> PCI doorbell */
        !           145:
        !           146:
        !           147: /* Interrupt Control/Status */
        !           148: #define        PLX_INTCSR              0x68
        !           149: #define        INTCSR_LSERR_TAMA       0x00000001
        !           150: #define        INTCSR_LSERR_PA         0x00000002
        !           151: #define        INTCSR_SERR             0x00000004
        !           152: #define        INTCSR_PCI_EN           0x00000100
        !           153: #define        INTCSR_PCIDB_EN         0x00000200
        !           154: #define        INTCSR_PCIAB_EN         0x00000400
        !           155: #define        INTCSR_PCILOC_EN        0x00000800
        !           156: #define        INTCSR_RETRYAB_EN       0x00001000
        !           157: #define        INTCSR_PCIDB_INT        0x00002000
        !           158: #define        INTCSR_PCIAB_INT        0x00004000
        !           159: #define        INTCSR_PCILOC_INT       0x00008000
        !           160: #define        INTCSR_LOCOE_EN         0x00010000
        !           161: #define        INTCSR_LOCDB_EN         0x00020000
        !           162: #define        INTCSR_LOCDB_INT        0x00100000
        !           163: #define        INTCSR_BIST_INT         0x00800000
        !           164: #define        INTCSR_DMAB_INT         0x01000000
        !           165: #define        INTCSR_RETRYAB_INT      0x08000000
        !           166:
        !           167:
        !           168: /* EEPROM Control, PCI Command Codes, User I/O Control, Init Control */
        !           169: #define        PLX_CONTROL             0x6c
        !           170: #define        CONTROL_PCIMRC          0x00000f00
        !           171: #define        CONTROL_PCIMRC_SHIFT    8
        !           172: #define        CONTROL_PCIMWC          0x0000f000
        !           173: #define        CONTROL_PCIMWC_SHIFT    12
        !           174: #define        CONTROL_GPO             0x00010000
        !           175: #define        CONTROL_GPI             0x00020000
        !           176: #define        CONTROL_EESK            0x01000000
        !           177: #define        CONTROL_EECS            0x02000000
        !           178: #define        CONTROL_EEDO            0x04000000      /* PLX -> EEPROM */
        !           179: #define        CONTROL_EEDI            0x08000000      /* EEPROM -> PLX */
        !           180: #define        CONTROL_EEPRESENT       0x10000000
        !           181: #define        CONTROL_RELOADCFG       0x20000000
        !           182: #define        CONTROL_SWR             0x40000000
        !           183: #define        CONTROL_LOCALINIT       0x80000000
        !           184:
        !           185:        /* EEPROM opcodes */
        !           186: #define        PLX_EEPROM_OPC_READ(x)  (0x0080 | ((x) & 0x3f))
        !           187: #define        PLX_EEPROM_OPC_WRITE(x) (0x0040 | ((x) & 0x3f))
        !           188: #define        PLX_EEPROM_OPC_WREN     0x0030
        !           189: #define        PLX_EEPROM_OPC_WRPR     0x0000
        !           190: #define        PLX_EEPROM_COMMAND(y)   (((y) & 0xff) | 0x100)
        !           191:
        !           192:
        !           193: /* PCI Configuration ID */
        !           194: #define        PLX_IDREG               0x70
        !           195:
        !           196: #endif /* _DEV_PCI_PLX9060REG_H_ */

CVSweb