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/xdma/controller/pl330.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 /*-
    2  * Copyright (c) 2017-2018 Ruslan Bukin <br@bsdpad.com>
    3  * All rights reserved.
    4  *
    5  * This software was developed by SRI International and the University of
    6  * Cambridge Computer Laboratory under DARPA/AFRL contract FA8750-10-C-0237
    7  * ("CTSRD"), as part of the DARPA CRASH research programme.
    8  *
    9  * Redistribution and use in source and binary forms, with or without
   10  * modification, are permitted provided that the following conditions
   11  * are met:
   12  * 1. Redistributions of source code must retain the above copyright
   13  *    notice, this list of conditions and the following disclaimer.
   14  * 2. Redistributions in binary form must reproduce the above copyright
   15  *    notice, this list of conditions and the following disclaimer in the
   16  *    documentation and/or other materials provided with the distribution.
   17  *
   18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   19  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   21  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   22  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   23  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   24  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   27  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   28  * SUCH DAMAGE.
   29  *
   30  * $FreeBSD$
   31  */
   32 
   33 #ifndef _DEV_XDMA_CONTROLLER_PL330_H_
   34 #define _DEV_XDMA_CONTROLLER_PL330_H_
   35 
   36 /* pl330 registers */
   37 #define DSR             0x000 /* DMA Manager Status */
   38 #define DPC             0x004 /* DMA Program Counter */
   39 #define INTEN           0x020 /* Interrupt Enable */
   40 #define INT_EVENT_RIS   0x024 /* Event-Interrupt Raw Status */
   41 #define INTMIS          0x028 /* Interrupt Status */
   42 #define INTCLR          0x02C /* Interrupt Clear */
   43 #define FSRD            0x030 /* Fault Status DMA Manager */
   44 #define FSRC            0x034 /* Fault Status DMA Channel */
   45 #define FTRD            0x038 /* Fault Type DMA Manager */
   46 #define FTR(n)          (0x040 + 0x04 * (n)) /* Fault type for DMA channel n */
   47 #define CSR(n)          (0x100 + 0x08 * (n)) /* Channel status for DMA channel n */
   48 #define CPC(n)          (0x104 + 0x08 * (n)) /* Channel PC for DMA channel n */
   49 #define SAR(n)          (0x400 + 0x20 * (n)) /* Source address for DMA channel n */
   50 #define DAR(n)          (0x404 + 0x20 * (n)) /* Destination address for DMA channel n */
   51 #define CCR(n)          (0x408 + 0x20 * (n)) /* Channel control for DMA channel n */
   52 #define  CCR_DST_BURST_SIZE_S   15
   53 #define  CCR_DST_BURST_SIZE_1   (0 << CCR_DST_BURST_SIZE_S)
   54 #define  CCR_DST_BURST_SIZE_2   (1 << CCR_DST_BURST_SIZE_S)
   55 #define  CCR_DST_BURST_SIZE_4   (2 << CCR_DST_BURST_SIZE_S)
   56 #define  CCR_SRC_BURST_SIZE_S   1
   57 #define  CCR_SRC_BURST_SIZE_1   (0 << CCR_SRC_BURST_SIZE_S)
   58 #define  CCR_SRC_BURST_SIZE_2   (1 << CCR_SRC_BURST_SIZE_S)
   59 #define  CCR_SRC_BURST_SIZE_4   (2 << CCR_SRC_BURST_SIZE_S)
   60 #define  CCR_DST_INC            (1 << 14)
   61 #define  CCR_SRC_INC            (1 << 0)
   62 #define  CCR_DST_PROT_CTRL_S    22
   63 #define  CCR_DST_PROT_PRIV      (1 << CCR_DST_PROT_CTRL_S)
   64 #define LC0(n)          (0x40C + 0x20 * (n)) /* Loop counter 0 for DMA channel n */
   65 #define LC1(n)          (0x410 + 0x20 * (n)) /* Loop counter 1 for DMA channel n */
   66 
   67 #define DBGSTATUS       0xD00 /* Debug Status */
   68 #define DBGCMD          0xD04 /* Debug Command */
   69 #define DBGINST0        0xD08 /* Debug Instruction-0 */
   70 #define DBGINST1        0xD0C /* Debug Instruction-1 */
   71 #define CR0             0xE00 /* Configuration Register 0 */
   72 #define CR1             0xE04 /* Configuration Register 1 */
   73 #define CR2             0xE08 /* Configuration Register 2 */
   74 #define CR3             0xE0C /* Configuration Register 3 */
   75 #define CR4             0xE10 /* Configuration Register 4 */
   76 #define CRD             0xE14 /* DMA Configuration */
   77 #define WD              0xE80 /* Watchdog Register */
   78 
   79 #define R_SAR   0
   80 #define R_CCR   1
   81 #define R_DAR   2
   82 
   83 /*
   84  * 0xFE0- 0xFEC  periph_id_n RO  Configuration-dependent Peripheral Identification Registers
   85  * 0xFF0- 0xFFC  pcell_id_n RO   Configuration-dependent Component Identification Registers
   86  */
   87 
   88 /* pl330 ISA */
   89 #define DMAADDH         0x54
   90 #define DMAADNH         0x5c
   91 #define DMAEND          0x00
   92 #define DMAFLUSHP       0x35
   93 #define DMAGO           0xa0
   94 #define DMAKILL         0x01
   95 #define DMALD           0x04
   96 #define DMALDP          0x25
   97 #define DMALP           0x20
   98 #define DMALPEND        0x28
   99 #define DMALPEND_NF     (1 << 4) /* DMALP started the loop */
  100 /*
  101  * TODO: documentation miss opcode for infinite loop
  102  * #define      DMALPFE         0
  103  */
  104 #define DMAMOV          0xbc
  105 #define DMANOP          0x18
  106 #define DMARMB          0x12
  107 #define DMASEV          0x34
  108 #define DMAST           0x08
  109 #define DMASTP          0x29
  110 #define DMASTZ          0x0c
  111 #define DMAWFE          0x36
  112 #define DMAWFP          0x30
  113 #define DMAWMB          0x13
  114 
  115 #endif /* !_DEV_XDMA_CONTROLLER_PL330_H_ */

Cache object: 6b479843c4999396a8aa8b4bc31a63ef


[ 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.