The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/mvme/vme_tworeg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: vme_tworeg.h,v 1.2 2008/04/28 20:23:54 martin Exp $    */
    2 
    3 /*-
    4  * Copyright (c) 1999, 2002 The NetBSD Foundation, Inc.
    5  * All rights reserved.
    6  *
    7  * This code is derived from software contributed to The NetBSD Foundation
    8  * by Steve C. Woodford.
    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  *
   19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  * POSSIBILITY OF SUCH DAMAGE.
   30  */
   31 
   32 #ifndef _MVME_VME_TWOREG_H
   33 #define _MVME_VME_TWOREG_H
   34 
   35 /*
   36  * Where the VMEchip2's registers live relative to the start
   37  * of the VMEChip2's register space.
   38  */
   39 #define VME2REG_LCSR_OFFSET     0x0000
   40 #define VME2REG_GCSR_OFFSET     0x0100
   41 
   42 
   43 /*
   44  * Register map of the Type 2 VMEchip found on many MVME boards.
   45  * Note: Only responds to D32 accesses.
   46  */
   47 
   48         /*
   49          * Slave window configuration registers
   50          */
   51 #define VME2_SLAVE_WINDOWS              2
   52 #define VME2LCSR_SLAVE_ADDRESS(x)       (0x00 + ((x) * 4))
   53 #define  VME2_SLAVE_ADDRESS_START_SHIFT 16
   54 #define  VME2_SLAVE_ADDRESS_START_MASK  (0x0000ffffu)
   55 #define  VME2_SLAVE_ADDRESS_END_SHIFT   0
   56 #define  VME2_SLAVE_ADDRESS_END_MASK    (0xffff0000u)
   57 
   58 #define VME2LCSR_SLAVE_TRANS(x)         (0x08 + ((x) * 4))
   59 #define  VME2_SLAVE_TRANS_SELECT_SHIFT  16
   60 #define  VME2_SLAVE_TRANS_SELECT_MASK   (0x0000ffffu)
   61 #define  VME2_SLAVE_TRANS_ADDRESS_SHIFT 0
   62 #define  VME2_SLAVE_TRANS_ADDRESS_MASK  (0xffff0000u)
   63 
   64 #define VME2LCSR_SLAVE_CTRL             0x10
   65 #define  VME2_SLAVE_AMSEL_DAT(x)        (1u << (0 + ((x) * 16)))
   66 #define  VME2_SLAVE_AMSEL_PGM(x)        (1u << (1 + ((x) * 16)))
   67 #define  VME2_SLAVE_AMSEL_BLK(x)        (1u << (2 + ((x) * 16)))
   68 #define  VME2_SLAVE_AMSEL_BLKD64(x)     (1u << (3 + ((x) * 16)))
   69 #define  VME2_SLAVE_AMSEL_A24(x)        (1u << (4 + ((x) * 16)))
   70 #define  VME2_SLAVE_AMSEL_A32(x)        (1u << (5 + ((x) * 16)))
   71 #define  VME2_SLAVE_AMSEL_USR(x)        (1u << (6 + ((x) * 16)))
   72 #define  VME2_SLAVE_AMSEL_SUP(x)        (1u << (7 + ((x) * 16)))
   73 #define  VME2_SLAVE_CTRL_WP(x)          (1u << (8 + ((x) * 16)))
   74 #define  VME2_SLAVE_CTRL_SNOOP_INHIBIT(x) (0u << (9 + ((x) * 16)))
   75 #define  VME2_SLAVE_CTRL_SNOOP_WRSINK(x)  (1u << (9 + ((x) * 16)))
   76 #define  VME2_SLAVE_CTRL_SNOOP_WRINVAL(x) (2u << (9 + ((x) * 16)))
   77 #define  VME2_SLAVE_CTRL_ADDER(x)       (1u << (11 + ((x) * 16)))
   78 
   79         /*
   80          * Master window address control registers
   81          */
   82 #define VME2_MASTER_WINDOWS             4
   83 #define VME2LCSR_MASTER_ADDRESS(x)      (0x14 + ((x) * 4))
   84 #define  VME2_MAST_ADDRESS_START_SHIFT  16
   85 #define  VME2_MAST_ADDRESS_START_MASK   (0x0000ffffu)
   86 #define  VME2_MAST_ADDRESS_END_SHIFT    0
   87 #define  VME2_MAST_ADDRESS_END_MASK     (0xffff0000u)
   88 
   89 #define VME2LCSR_MAST4_TRANS            0x24
   90 #define  VME2_MAST4_TRANS_SELECT_SHIFT  16
   91 #define  VME2_MAST4_TRANS_SELECT_MASK   (0x0000ffffu)
   92 #define  VME2_MAST4_TRANS_ADDRESS_SHIFT 0
   93 #define  VME2_MAST4_TRANS_ADDRESS_MASK  (0xffff0000u)
   94 
   95         /*
   96          * VMEbus master attribute control register
   97          */
   98 #define VME2LCSR_MASTER_ATTR            0x28
   99 #define  VME2_MASTER_ATTR_AM_SHIFT(x)   ((x) * 8)
  100 #define  VME2_MASTER_ATTR_AM_MASK       (0x0000003fu)
  101 #define  VME2_MASTER_ATTR_WP            (1u << 6)
  102 #define  VME2_MASTER_ATTR_D16           (1u << 7)
  103 
  104         /*
  105          * GCSR Group/Board addresses, and
  106          * VMEbus Master Enable Control register, and
  107          * Local to VMEbus I/O Control register, and
  108          * ROM Control register (unused).
  109          */
  110 #define VME2LCSR_GCSR_ADDRESS           0x2c
  111 #define  VME2_GCSR_ADDRESS_SHIFT        16
  112 #define  VME2_GCSR_ADDRESS_MASK         (0xfff00000u)
  113 
  114 #define VME2LCSR_MASTER_ENABLE          0x2c
  115 #define  VME2_MASTER_ENABLE_MASK        (0x000f0000u)
  116 #define  VME2_MASTER_ENABLE(x)          (1u << ((x) + 16))
  117 
  118 #define VME2LCSR_IO_CONTROL             0x2c
  119 #define  VME2_IO_CONTROL_SHIFT          8
  120 #define  VME2_IO_CONTROL_MASK           (0x0000ff00u)
  121 #define  VME2_IO_CONTROL_I1SU           (1u << 8)
  122 #define  VME2_IO_CONTROL_I1WP           (1u << 9)
  123 #define  VME2_IO_CONTROL_I1D16          (1u << 10)
  124 #define  VME2_IO_CONTROL_I1EN           (1u << 11)
  125 #define  VME2_IO_CONTROL_I2PD           (1u << 12)
  126 #define  VME2_IO_CONTROL_I2SU           (1u << 13)
  127 #define  VME2_IO_CONTROL_I2WP           (1u << 14)
  128 #define  VME2_IO_CONTROL_I2EN           (1u << 15)
  129 
  130         /*
  131          * VMEChip2 PROM Decoder, SRAM and DMA Control register
  132          */
  133 #define VME2LCSR_PROM_SRAM_DMA_CTRL     0x30
  134 #define  VME2_PSD_SRAMS_MASK            (0x00ff0000u)
  135 #define  VME2_PSD_SRAMS_CLKS6           (0u << 16)
  136 #define  VME2_PSD_SRAMS_CLKS5           (1u << 16)
  137 #define  VME2_PSD_SRAMS_CLKS4           (2u << 16)
  138 #define  VME2_PSD_SRAMS_CLKS3           (3u << 16)
  139 #define  VME2_PSD_TBLSC_INHIB           (0u << 18)
  140 #define  VME2_PSD_TBLSC_WRSINK          (1u << 18)
  141 #define  VME2_PSD_TBLSC_WRINV           (2u << 18)
  142 #define  VME2_PSD_ROM0                  (1u << 20)
  143 #define  VME2_PSD_WAITRMW               (1u << 21)
  144 
  145         /*
  146          * VMEbus requester control register
  147          */
  148 #define VME2LCSR_VME_REQUESTER_CONTROL  0x30
  149 #define  VME2_VMEREQ_CTRL_MASK          (0x0000ff00u)
  150 #define  VME2_VMEREQ_CTRL_LVREQL_MASK   (0x00000300u)
  151 #define  VME2_VMEREQ_CTRL_LVREQL(x)     ((u_int)(x) << 8)
  152 #define  VME2_VMEREQ_CTRL_LVRWD         (1u << 10)
  153 #define  VME2_VMEREQ_CTRL_LVFAIR        (1u << 11)
  154 #define  VME2_VMEREQ_CTRL_DWB           (1u << 13)
  155 #define  VME2_VMEREQ_CTRL_DHB           (1u << 14)
  156 #define  VME2_VMEREQ_CTRL_ROBN          (1u << 15)
  157 
  158         /*
  159          * DMAC control register
  160          */
  161 #define VME2LCSR_DMAC_CONTROL1          0x30
  162 #define  VME2_DMAC_CTRL1_MASK           (0x000000ffu)
  163 #define  VME2_DMAC_CTRL1_DREQL_MASK     (0x00000003u)
  164 #define  VME2_DMAC_CTRL1_DREQL(x)       ((u_int)(x) << 0)
  165 #define  VME2_DMAC_CTRL1_DRELM_MASK     (0x0000000cu)
  166 #define  VME2_DMAC_CTRL1_DRELM(x)       ((u_int)(x) << 2)
  167 #define  VME2_DMAC_CTRL1_DFAIR          (1u << 4)
  168 #define  VME2_DMAC_CTRL1_DTBL           (1u << 5)
  169 #define  VME2_DMAC_CTRL1_DEN            (1u << 6)
  170 #define  VME2_DMAC_CTRL1_DHALT          (1u << 7)
  171 
  172         /*
  173          * DMA Control register #2
  174          */
  175 #define VME2LCSR_DMAC_CONTROL2          0x34
  176 #define  VME2_DMAC_CTRL2_MASK           (0x0000ffffu)
  177 #define  VME2_DMAC_CTRL2_SHIFT          0
  178 #define  VME2_DMAC_CTRL2_AM_MASK        (0x0000003fu)
  179 #define  VME2_DMAC_CTRL2_BLK_D32        (1u << 6)
  180 #define  VME2_DMAC_CTRL2_BLK_D64        (3u << 6)
  181 #define  VME2_DMAC_CTRL2_D16            (1u << 8)
  182 #define  VME2_DMAC_CTRL2_TVME           (1u << 9)
  183 #define  VME2_DMAC_CTRL2_LINC           (1u << 10)
  184 #define  VME2_DMAC_CTRL2_VINC           (1u << 11)
  185 #define  VME2_DMAC_CTRL2_SNOOP_INHIB    (0u << 13)
  186 #define  VME2_DMAC_CTRL2_SNOOP_WRSNK    (1u << 13)
  187 #define  VME2_DMAC_CTRL2_SNOOP_WRINV    (2u << 13)
  188 #define  VME2_DMAC_CTRL2_INTE           (1u << 15)
  189 
  190         /*
  191          * DMA Controller Local Bus and VMEbus Addresses, Byte
  192          * Counter and Table Address Counter registers
  193          */
  194 #define VME2LCSR_DMAC_LOCAL_ADDRESS     0x38
  195 #define VME2LCSR_DMAC_VME_ADDRESS       0x3c
  196 #define VME2LCSR_DMAC_BYTE_COUNTER      0x40
  197 #define VME2LCSR_DMAC_TABLE_ADDRESS     0x44
  198 
  199         /*
  200          * VMEbus Interrupter Control register
  201          */
  202 #define VME2LCSR_INTERRUPT_CONTROL      0x48
  203 #define  VME2_INT_CTRL_MASK             (0xff000000u)
  204 #define  VME2_INT_CTRL_SHIFT            24
  205 #define  VME2_INT_CTRL_IRQL_MASK        (0x07000000u)
  206 #define  VME2_INT_CTRL_IRQS             (1u << 27)
  207 #define  VME2_INT_CTRL_IRQC             (1u << 28)
  208 #define  VME2_INT_CTRL_IRQ1S_INT        (0u << 29)
  209 #define  VME2_INT_CTRL_IRQ1S_TICK1      (1u << 29)
  210 #define  VME2_INT_CTRL_IRQ1S_TICK2      (3u << 29)
  211 
  212         /*
  213          * VMEbus Interrupt Vector register
  214          */
  215 #define VME2LCSR_INTERRUPT_VECTOR       0x48
  216 #define  VME2_INTERRUPT_VECTOR_MASK     (0x00ff0000u)
  217 #define  VME2_INTERRUPT_VECTOR_SHIFT    16
  218 
  219         /*
  220          * MPU Status register
  221          */
  222 #define VME2LCSR_MPU_STATUS             0x48
  223 #define  VME2_MPU_STATUS_MLOB           (1u << 0)
  224 #define  VME2_MPU_STATUS_MLPE           (1u << 1)
  225 #define  VME2_MPU_STATUS_MLBE           (1u << 2)
  226 #define  VME2_MPU_STATUS_MCLR           (1u << 3)
  227 
  228         /*
  229          * DMA Interrupt Count register
  230          */
  231 #define VME2LCSR_DMAC_INTERRUPT_CONTROL 0x48
  232 #define  VME2_DMAC_INT_COUNT_MASK       (0x0000f000u)
  233 #define  VME2_DMAC_INT_COUNT_SHIFT      12
  234 
  235         /*
  236          * DMA Controller Status register
  237          */
  238 #define VME2LCSR_DMAC_STATUS            0x48
  239 #define  VME2_DMAC_STATUS_DONE          (1u << 0)
  240 #define  VME2_DMAC_STATUS_VME           (1u << 1)
  241 #define  VME2_DMAC_STATUS_TBL           (1u << 2)
  242 #define  VME2_DMAC_STATUS_DLTO          (1u << 3)
  243 #define  VME2_DMAC_STATUS_DLOB          (1u << 4)
  244 #define  VME2_DMAC_STATUS_DLPE          (1u << 5)
  245 #define  VME2_DMAC_STATUS_DLBE          (1u << 6)
  246 #define  VME2_DMAC_STATUS_MLTO          (1u << 7)
  247 
  248 
  249         /*
  250          * VMEbus Arbiter Time-out register
  251          */
  252 #define VME2LCSR_VME_ARB_TIMEOUT        0x4c
  253 #define  VME2_VME_ARB_TIMEOUT_ENAB      (1u << 24)
  254 
  255         /*
  256          * DMA Controller Timers and VMEbus Global Time-out Control registers
  257          */
  258 #define VME2LCSR_DMAC_TIME_ONOFF        0x4c
  259 #define  VME2_DMAC_TIME_ON_MASK         (0x001c0000u)
  260 #define  VME2_DMAC_TIME_ON_16US         (0u << 18)
  261 #define  VME2_DMAC_TIME_ON_32US         (1u << 18)
  262 #define  VME2_DMAC_TIME_ON_64US         (2u << 18)
  263 #define  VME2_DMAC_TIME_ON_128US        (3u << 18)
  264 #define  VME2_DMAC_TIME_ON_256US        (4u << 18)
  265 #define  VME2_DMAC_TIME_ON_512US        (5u << 18)
  266 #define  VME2_DMAC_TIME_ON_1024US       (6u << 18)
  267 #define  VME2_DMAC_TIME_ON_DONE         (7u << 18)
  268 #define  VME2_DMAC_TIME_OFF_MASK        (0x00e00000u)
  269 #define  VME2_DMAC_TIME_OFF_0US         (0u << 21)
  270 #define  VME2_DMAC_TIME_OFF_16US        (1u << 21)
  271 #define  VME2_DMAC_TIME_OFF_32US        (2u << 21)
  272 #define  VME2_DMAC_TIME_OFF_64US        (3u << 21)
  273 #define  VME2_DMAC_TIME_OFF_128US       (4u << 21)
  274 #define  VME2_DMAC_TIME_OFF_256US       (5u << 21)
  275 #define  VME2_DMAC_TIME_OFF_512US       (6u << 21)
  276 #define  VME2_DMAC_TIME_OFF_1024US      (7u << 21)
  277 #define  VME2_VME_GLOBAL_TO_MASK        (0x00030000u)
  278 #define  VME2_VME_GLOBAL_TO_8US         (0u << 16)
  279 #define  VME2_VME_GLOBAL_TO_16US        (1u << 16)
  280 #define  VME2_VME_GLOBAL_TO_256US       (2u << 16)
  281 #define  VME2_VME_GLOBAL_TO_DISABLE     (3u << 16)
  282 
  283         /*
  284          * VME Access, Local Bus and Watchdog Time-out Control register
  285          */
  286 #define VME2LCSR_VME_ACCESS_TIMEOUT     0x4c
  287 #define  VME2_VME_ACCESS_TIMEOUT_MASK   (0x0000c000u)
  288 #define  VME2_VME_ACCESS_TIMEOUT_64US   (0u << 14)
  289 #define  VME2_VME_ACCESS_TIMEOUT_1MS    (1u << 14)
  290 #define  VME2_VME_ACCESS_TIMEOUT_32MS   (2u << 14)
  291 #define  VME2_VME_ACCESS_TIMEOUT_DISABLE (3u << 14)
  292 
  293 #define VME2LCSR_LOCAL_BUS_TIMEOUT      0x4c
  294 #define  VME2_LOCAL_BUS_TIMEOUT_MASK    (0x00003000u)
  295 #define  VME2_LOCAL_BUS_TIMEOUT_64US    (0u << 12)
  296 #define  VME2_LOCAL_BUS_TIMEOUT_1MS     (1u << 12)
  297 #define  VME2_LOCAL_BUS_TIMEOUT_32MS    (2u << 12)
  298 #define  VME2_LOCAL_BUS_TIMEOUT_DISABLE (3u << 12)
  299 
  300 #define VME2LCSR_WATCHDOG_TIMEOUT       0x4c
  301 #define  VME2_WATCHDOG_TIMEOUT_MASK     (0x00000f00u)
  302 #define  VME2_WATCHDOG_TIMEOUT_512US    (0u << 8)
  303 #define  VME2_WATCHDOG_TIMEOUT_1MS      (1u << 8)
  304 #define  VME2_WATCHDOG_TIMEOUT_2MS      (2u << 8)
  305 #define  VME2_WATCHDOG_TIMEOUT_4MS      (3u << 8)
  306 #define  VME2_WATCHDOG_TIMEOUT_8MS      (4u << 8)
  307 #define  VME2_WATCHDOG_TIMEOUT_16MS     (5u << 8)
  308 #define  VME2_WATCHDOG_TIMEOUT_32MS     (6u << 8)
  309 #define  VME2_WATCHDOG_TIMEOUT_64MS     (7u << 8)
  310 #define  VME2_WATCHDOG_TIMEOUT_128MS    (8u << 8)
  311 #define  VME2_WATCHDOG_TIMEOUT_256MS    (9u << 8)
  312 #define  VME2_WATCHDOG_TIMEOUT_512MS    (10u << 8)
  313 #define  VME2_WATCHDOG_TIMEOUT_1S       (11u << 8)
  314 #define  VME2_WATCHDOG_TIMEOUT_4S       (12u << 8)
  315 #define  VME2_WATCHDOG_TIMEOUT_16S      (13u << 8)
  316 #define  VME2_WATCHDOG_TIMEOUT_32S      (14u << 8)
  317 #define  VME2_WATCHDOG_TIMEOUT_64S      (15u << 8)
  318 
  319         /*
  320          * Prescaler Control register
  321          */
  322 #define VME2LCSR_PRESCALER_CONTROL      0x4c
  323 #define  VME2_PRESCALER_MASK            (0x000000ffu)
  324 #define  VME2_PRESCALER_SHIFT           0
  325 #define  VME2_PRESCALER_CTRL(c)         (256 - (c))
  326 
  327         /*
  328          * Tick Timer registers
  329          */
  330 #define VME2LCSR_TIMER_COMPARE(x)       (0x50 + ((x) * 8))
  331 #define VME2LCSR_TIMER_COUNTER(x)       (0x54 + ((x) * 8))
  332 
  333 
  334         /*
  335          * Board Control register
  336          */
  337 #define VME2LCSR_BOARD_CONTROL          0x60
  338 #define  VME2_BOARD_CONTROL_RSWE        (1u << 24)
  339 #define  VME2_BOARD_CONTROL_BDFLO       (1u << 25)
  340 #define  VME2_BOARD_CONTROL_CPURS       (1u << 26)
  341 #define  VME2_BOARD_CONTROL_PURS        (1u << 27)
  342 #define  VME2_BOARD_CONTROL_BRFLI       (1u << 28)
  343 #define  VME2_BOARD_CONTROL_SFFL        (1u << 29)
  344 #define  VME2_BOARD_CONTROL_SCON        (1u << 30)
  345 
  346         /*
  347          * Watchdog Timer Control register
  348          */
  349 #define VME2LCSR_WATCHDOG_TIMER_CONTROL 0x60
  350 #define  VME2_WATCHDOG_TCONTROL_WDEN    (1u << 16)
  351 #define  VME2_WATCHDOG_TCONTTRL_WDRSE   (1u << 17)
  352 #define  VME2_WATCHDOG_TCONTTRL_WDSL    (1u << 18)
  353 #define  VME2_WATCHDOG_TCONTTRL_WDBFE   (1u << 19)
  354 #define  VME2_WATCHDOG_TCONTTRL_WDTO    (1u << 20)
  355 #define  VME2_WATCHDOG_TCONTTRL_WDCC    (1u << 21)
  356 #define  VME2_WATCHDOG_TCONTTRL_WDCS    (1u << 22)
  357 #define  VME2_WATCHDOG_TCONTTRL_SRST    (1u << 23)
  358 
  359         /*
  360          * Tick Timer Control registers
  361          */
  362 #define VME2LCSR_TIMER_CONTROL          0x60
  363 #define  VME2_TIMER_CONTROL_EN(x)       (1u << (0 + ((x) * 8)))
  364 #define  VME2_TIMER_CONTROL_COC(x)      (1u << (1 + ((x) * 8)))
  365 #define  VME2_TIMER_CONTROL_COF(x)      (1u << (2 + ((x) * 8)))
  366 #define  VME2_TIMER_CONTROL_OVF_SHIFT(x) (4 + ((x) * 8))
  367 #define  VME2_TIMER_CONTROL_OVF_MASK(x) (0x000000f0u << (4 + ((x) * 8)))
  368 
  369         /*
  370          * Prescaler Counter register
  371          */
  372 #define VME2LCSR_PRESCALER_COUNTER      0x64
  373 
  374         /*
  375          * Local Bus Interrupter Status/Enable/Clear registers
  376          */
  377 #define VME2LCSR_LOCAL_INTERRUPT_STATUS 0x68
  378 #define VME2LCSR_LOCAL_INTERRUPT_ENABLE 0x6c
  379 #define VME2LCSR_LOCAL_INTERRUPT_CLEAR  0x74
  380 #define  VME2_LOCAL_INTERRUPT(x)        (1u << (x))
  381 #define  VME2_LOCAL_INTERRUPT_VME(x)    (1u << ((x) - 1))
  382 #define  VME2_LOCAL_INTERRUPT_SWINT(x)  (1u << ((x) + 8))
  383 #define  VME2_LOCAL_INTERRUPT_LM(x)     (1u << ((x) + 16))
  384 #define  VME2_LOCAL_INTERRUPT_SIG(x)    (1u << ((x) + 18))
  385 #define  VME2_LOCAL_INTERRUPT_DMAC      (1u << 22)
  386 #define  VME2_LOCAL_INTERRUPT_VIA       (1u << 23)
  387 #define  VME2_LOCAL_INTERRUPT_TIC(x)    (1u << ((x) + 24))
  388 #define  VME2_LOCAL_INTERRUPT_VI1E      (1u << 26)
  389 #define  VME2_LOCAL_INTERRUPT_PE        (1u << 27)
  390 #define  VME2_LOCAL_INTERRUPT_MWP       (1u << 28)
  391 #define  VME2_LOCAL_INTERRUPT_SYSF      (1u << 29)
  392 #define  VME2_LOCAL_INTERRUPT_ABORT     (1u << 30)
  393 #define  VME2_LOCAL_INTERRUPT_ACFAIL    (1u << 31)
  394 #define  VME2_LOCAL_INTERRUPT_CLEAR_ALL (0xffffff00u)
  395 
  396         /*
  397          * Software Interrupt Set register
  398          */
  399 #define VME2LCSR_SOFTINT_SET            0x70
  400 #define  VME2_SOFTINT_SET(x)            (1u << ((x) + 8))
  401 
  402         /*
  403          * Interrupt Level registers
  404          */
  405 #define VME2LCSR_INTERRUPT_LEVEL_BASE   0x78
  406 #define  VME2_NUM_IL_REGS               4
  407 #define  VME2_ILOFFSET_FROM_VECTOR(v)   (((((VME2_NUM_IL_REGS*8)-1)-(v))/8)<<2)
  408 #define  VME2_ILSHIFT_FROM_VECTOR(v)    (((v) & 7) * 4)
  409 #define  VME2_INTERRUPT_LEVEL_MASK      (0x0fu)
  410 
  411         /*
  412          * Vector Base register
  413          */
  414 #define VME2LCSR_VECTOR_BASE            0x88
  415 #define  VME2_VECTOR_BASE_MASK          (0xff000000u)
  416 #define  VME2_VECTOR_BASE_REG_VALUE     (0x76000000u)
  417 #define  VME2_VECTOR_BASE               (0x60u)
  418 #define  VME2_VECTOR_LOCAL_OFFSET       (0x08u)
  419 #define  VME2_VECTOR_LOCAL_MIN          (VME2_VECTOR_BASE + 0x08u)
  420 #define  VME2_VECTOR_LOCAL_MAX          (VME2_VECTOR_BASE + 0x1fu)
  421 #define  VME2_VEC_SOFT0                 (VME2_VECTOR_BASE + 0x08u)
  422 #define  VME2_VEC_SOFT1                 (VME2_VECTOR_BASE + 0x09u)
  423 #define  VME2_VEC_SOFT2                 (VME2_VECTOR_BASE + 0x0au)
  424 #define  VME2_VEC_SOFT3                 (VME2_VECTOR_BASE + 0x0bu)
  425 #define  VME2_VEC_SOFT4                 (VME2_VECTOR_BASE + 0x0cu)
  426 #define  VME2_VEC_SOFT5                 (VME2_VECTOR_BASE + 0x0du)
  427 #define  VME2_VEC_SOFT6                 (VME2_VECTOR_BASE + 0x0eu)
  428 #define  VME2_VEC_SOFT7                 (VME2_VECTOR_BASE + 0x0fu)
  429 #define  VME2_VEC_GCSRLM0               (VME2_VECTOR_BASE + 0x10u)
  430 #define  VME2_VEC_GCSRLM1               (VME2_VECTOR_BASE + 0x11u)
  431 #define  VME2_VEC_GCSRSIG0              (VME2_VECTOR_BASE + 0x12u)
  432 #define  VME2_VEC_GCSRSIG1              (VME2_VECTOR_BASE + 0x13u)
  433 #define  VME2_VEC_GCSRSIG2              (VME2_VECTOR_BASE + 0x14u)
  434 #define  VME2_VEC_GCSRSIG3              (VME2_VECTOR_BASE + 0x15u)
  435 #define  VME2_VEC_DMAC                  (VME2_VECTOR_BASE + 0x16u)
  436 #define  VME2_VEC_VIA                   (VME2_VECTOR_BASE + 0x17u)
  437 #define  VME2_VEC_TT1                   (VME2_VECTOR_BASE + 0x18u)
  438 #define  VME2_VEC_TT2                   (VME2_VECTOR_BASE + 0x19u)
  439 #define  VME2_VEC_IRQ1                  (VME2_VECTOR_BASE + 0x1au)
  440 #define  VME2_VEC_PARITY_ERROR          (VME2_VECTOR_BASE + 0x1bu)
  441 #define  VME2_VEC_MWP_ERROR             (VME2_VECTOR_BASE + 0x1cu)
  442 #define  VME2_VEC_SYSFAIL               (VME2_VECTOR_BASE + 0x1du)
  443 #define  VME2_VEC_ABORT                 (VME2_VECTOR_BASE + 0x1eu)
  444 #define  VME2_VEC_ACFAIL                (VME2_VECTOR_BASE + 0x1fu)
  445 
  446         /*
  447          * I/O Control register #1
  448          */
  449 #define VME2LCSR_GPIO_DIRECTION         0x88
  450 #define  VME2_GPIO_DIRECTION_OUT(x)     (1u << ((x) + 16))
  451 
  452         /*
  453          * Misc. Status register
  454          */
  455 #define VME2LCSR_MISC_STATUS            0x88
  456 #define  VME2_MISC_STATUS_ABRTL         (1u << 20)
  457 #define  VME2_MISC_STATUS_ACFL          (1u << 21)
  458 #define  VME2_MISC_STATUS_SYSFL         (1u << 22)
  459 #define  VME2_MISC_STATUS_MIEN          (1u << 23)
  460 
  461         /*
  462          * GPIO Status register
  463          */
  464 #define VME2LCSR_GPIO_STATUS            0x88
  465 #define  VME2_GPIO_STATUS(x)            (1u << ((x) + 8))
  466 
  467         /*
  468          * GPIO Control register #2
  469          */
  470 #define VME2LCSR_GPIO_CONTROL           0x88
  471 #define  VME2_GPIO_CONTROL_SET(x)       (1u << ((x) + 12))
  472 
  473         /*
  474          * General purpose input registers
  475          */
  476 #define VME2LCSR_GP_INPUTS              0x88
  477 #define  VME2_GP_INPUT(x)               (1u << (x))
  478 
  479         /*
  480          * Miscellaneous Control register
  481          */
  482 #define VME2LCSR_MISC_CONTROL           0x8c
  483 #define  VME2_MISC_CONTROL_DISBGN       (1u << 0)
  484 #define  VME2_MISC_CONTROL_ENINT        (1u << 1)
  485 #define  VME2_MISC_CONTROL_DISBSYT      (1u << 2)
  486 #define  VME2_MISC_CONTROL_NOELBBSY     (1u << 3)
  487 #define  VME2_MISC_CONTROL_DISMST       (1u << 4)
  488 #define  VME2_MISC_CONTROL_DISSRAM      (1u << 5)
  489 #define  VME2_MISC_CONTROL_REVEROM      (1u << 6)
  490 #define  VME2_MISC_CONTROL_MPIRQEN      (1u << 7)
  491 
  492 #define VME2LCSR_SIZE           0x90
  493 
  494 
  495 #define vme2_lcsr_read(s,r) \
  496         bus_space_read_4((s)->sc_mvmebus.sc_bust, (s)->sc_lcrh, (r))
  497 #define vme2_lcsr_write(s,r,v) \
  498         bus_space_write_4((s)->sc_mvmebus.sc_bust, (s)->sc_lcrh, (r), (v))
  499 
  500 
  501 /*
  502  * Locations of the three fixed VMEbus I/O ranges
  503  */
  504 #define VME2_IO0_LOCAL_START            (0xffff0000u)
  505 #define VME2_IO0_MASK                   (0x0000ffffu)
  506 #define VME2_IO0_VME_START              (0x00000000u)
  507 #define VME2_IO0_VME_END                (0x0000ffffu)
  508 
  509 #define VME2_IO1_LOCAL_START            (0xf0000000u)
  510 #define VME2_IO1_MASK                   (0x00ffffffu)
  511 #define VME2_IO1_VME_START              (0x00000000u)
  512 #define VME2_IO1_VME_END                (0x00ffffffu)
  513 
  514 #define VME2_IO2_LOCAL_START            (0x00000000u)
  515 #define VME2_IO2_MASK                   (0xffffffffu)
  516 #define VME2_IO2_VME_START              (0xf1000000u)   /* Maybe starts@ 0x0? */
  517 #define VME2_IO2_VME_END                (0xff7fffffu)
  518 
  519 #endif /* _MVME_VME_TWOREG_H */

Cache object: f563bb2bc639802197e13294264f25a4


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.