Skip to content
Snippets Groups Projects
dma_controller_regs.cheby 4 KiB
Newer Older
# ------------------------------------------------------------------------------
#  CERN BE-CO-HT
#  GN4124 core for PCIe FMC carrier
#  http://www.ohwr.org/projects/gn4124-core
# ------------------------------------------------------------------------------
#
#  unit name:   dma_controller_regs
#
#  description: GN4124 core DMA controller registers block layout
#
# ------------------------------------------------------------------------------
#  Copyright CERN 2010-2019
# ------------------------------------------------------------------------------
#  Copyright and related rights are licensed under the Solderpad Hardware
#  License, Version 2.0 (the "License"); you may not use this file except
#  in compliance with the License. You may obtain a copy of the License at
#  http://solderpad.org/licenses/SHL-2.0.
#  Unless required by applicable law or agreed to in writing, software,
#  hardware and materials distributed under this License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
#  or implied. See the License for the specific language governing permissions
#  and limitations under the License.
# ------------------------------------------------------------------------------
memory-map:
  bus: wb-32-be
  name: dma_controller_regs
  description: "GN4124 core DMA controller"
  comment: Wishbone slave for the DMA controller of the GN4124 core
  children:
  - reg:
      name: ctrl
      address: 0x00000000
      width: 32
      access: rw
      description: DMACTRLR
      children:
      - field:
         name: start
         range: 0
         comment: Start DMA transfer
         description: Write '1' to start a DMA transfer
         x-hdl:
           type: wire
      - field:
         name: abort
         range: 1
         comment: Abort current DMA transfer
         description: Write '1' to abort the DMA transfer
         x-hdl:
           type: wire
      - field:
         name: byteswap
         range: 3-2
         description: Control byte-swapping
      x-hdl:
        write-strobe: True
        write-ack: True
  - reg:
      name: stat
      address: 0x00000004
      width: 32
      access: rw
      description: DMASTATR
      children:
      - field:
         name: status
         comment: DMA state
         description: |
           DMA state:
           00: idle
           01: busy
           10: error
           11: abort
         range: 1-0
         x-hdl:
           type: wire
      - field:
         name: irq
         comment: IRQ status, write 1 to clear
         range: 2
         x-hdl:
           type: wire
      x-hdl:
        write-strobe: True
        write-ack: True
        read-strobe: True
        read-ack: True
  - reg:
      name: cstart
      address: 0x00000008
      width: 32
      access: rw
      comment: DMACSTARTR
      description: Carrier start address
  - reg:
      name: hstartl
      address: 0x0000000c
      width: 32
      access: rw
      comment: DMAHSTARTLR
      description: DMA start address (low) in the host
  - reg:
      name: hstarth
      address: 0x00000010
      width: 32
      access: rw
      comment: DMAHSTARTHR
      description: DMA start address (high) in the host
  - reg:
      name: len
      address: 0x00000014
      width: 32
      access: rw
      comment: DMALENR
      description: DMA read length in bytes
  - reg:
      name: nextl
      address: 0x00000018
      width: 32
      access: rw
      comment: DMANEXTLR
      description: Pointer (low) to next item in list
  - reg:
      name: nexth
      address: 0x0000001c
      width: 32
      access: rw
      comment: DMANEXTHR
      description: Pointer (high) to next item in list
  - reg:
      name: attrib
      address: 0x00000020
      width: 32
      access: rw
      comment: DMAATTRIBR
      description: DMA chain control
      children:
      - field:
         name: chain
         comment: Transfer chain (if 1)
         range: 1
      - field:
         name: dir
         comment: "Transfer direction (0: to host, 1: to carrier)"
         range: 0