blob: 42cb1016b048827e0d20384032a05c0e3337d847 [file] [log] [blame]
/******************************************************************************
* *
* License Agreement *
* *
* Copyright (c) 2015 Altera Corporation, San Jose, California, USA. *
* All rights reserved. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the "Software"), *
* to deal in the Software without restriction, including without limitation *
* the rights to use, copy, modify, merge, publish, distribute, sublicense, *
* and/or sell copies of the Software, and to permit persons to whom the *
* Software is furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in *
* all copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *
* DEALINGS IN THE SOFTWARE. *
* *
******************************************************************************/
#ifndef ALT_MSGDMA_PREFETCHER_REGS_H_
#define ALT_MSGDMA_PREFETCHER_REGS_H_
#include "io.h"
/*
MSGDMA Prefetcher core is an additional micro core to existing MSGDMA core which
already consists of dispatcher, read master and write master micro core. Prefetcher
core provides functionality to fetch a series of descriptors from memory that
describes the required data transfers before pass them to dispatcher core for data
transfer execution.
*/
/*
* Component : MSGDMA PREFETCHER
*
*/
#define ALT_MSGDMA_PREFETCHER_CONTROL_OFST 0x00
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_OFST 0x04
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_OFST 0x08
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_OFST 0x0C
#define ALT_MSGDMA_PREFETCHER_STATUS_OFST 0x10
/*
* New MSGDMA PREFETCHER Descriptor fields. These are not prefetcher registers
* they are in the prefetcher descriptor structs
*/
/* The mask used to set the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW value. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_SET_MASK (1 << 30)
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW value. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_CLR_MASK 0xBFFFFFFF
/* The bit offset of the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW field. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_BIT_OFFSET 30
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_GET(value) (((value) & 0x40000000) >> 30)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_CTRL_OWN_BY_HW_SET(value) (((value) << 30) & 0x40000000)
/*
* Register : control
*
* The control register has two defined bits.
*
* DESC_POLL_EN and RUN .
*
* Detailed description available in their individual bitfields
*
* Register Layout
*
* Bits | Access | Reset | Description
* :-------|:-------|:------|:------------
* [0] | R/W | 0x0 | RUN
* [1] | R/W | 0x0 | DESC_POLL_EN
* [2] | R/W1S | 0x0 | RESET_PREFETCHER
* [3] | R/W | 0x0 | GLOBAL_INTR_EN_MASK
* [4] | R/W | 0x0 | PARK_MODE
* [31:5] | R | 0x0 | RESERVED
*
*/
/* bits making up the "control" register */
/* the RUN bit field in the control register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_SET_MASK 0x1
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_CLR_MASK 0xFFFFFFFE
/* The bit offset of the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_BIT_OFFSET 0
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_SET(value) (((value) << 0) & 0x00000001)
/* the DESC_POLL_EN bit field in the control register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN_MASK 0x2
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN_CLR_MASK 0xFFFFFFFD
/* The bit offset of the ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN_BIT_OFFSET 1
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_DESC_POLL_EN_SET(value) (((value) << 1) & 0x00000002)
/* the RESET_PREFETCHER bit field in the control register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_CTRL_RESET register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RESET_SET_MASK 0x4
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RESET_CLR_MASK 0xFFFFFFFB
/* The bit offset of the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RESET_BIT_OFFSET 2
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RESET_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RESET_SET(value) (((value) << 2) & 0x00000004)
/* the GLOBAL_INTR_EN_MASK bit field in the control register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_MASK register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_SET_MASK 0x8
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_CLR_MASK 0xFFFFFFF7
/* The bit offset of the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_BIT_OFFSET 3
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_GLOBAL_INTR_EN_SET(value) (((value) << 3) & 0x00000008)
/* the PARK_MODE bit field in the control register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE_SET_MASK 0x10
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE_CLR_MASK 0xFFFFFFEF
/* The bit offset of the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE_BIT_OFFSET 4
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE_GET(value) (((value) & 0x00000010) >> 4)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_CTRL_PARK_MODE_SET(value) (((value) << 4) & 0x00000010)
/*
* Registers : Next Descriptor Pointer Low/High
*
* The register has no bit fields, the 64 bits represent an address.
*
* Register Layout
*
* Bits | Access | Reset | Description
* :-------|:-------|:------|:------------
* [31:0] | R/W | 0x0 | NEXT_PTR_ADDR_LOW
* [63:32]| R/W | 0x0 | NEXT_PTR_ADDR_HIGH
*
*/
/* bits making up the "Next Descriptor Pointer " register */
/* the NEXT_PTR_ADDR_LOW bit field in the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_REG register field value. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_SET_MASK 0xFFFFFFFF
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field value. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_CLR_MASK 0x0
/* The bit offset of the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_BIT_OFFSET 0
/* Extracts the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG field value from a register. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_GET(value) (((value) & 0xFFFFFFFF) >> 0)
/* Produces a ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_SET(value) (((value) << 0) & 0xFFFFFFFF)
/* the NEXT_PTR_ADDR_HIGH bit field in the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_REG register field value. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_SET_MASK 0xFFFFFFFF
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field value. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_CLR_MASK 0x0
/* The bit offset of the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_BIT_OFFSET 0
/* Extracts the ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG field value from a register. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_GET(value) (((value) & 0xFFFFFFFF) >> 0)
/* Produces a ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_REG register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_SET(value) (((value) << 0) & 0xFFFFFFFF)
/*
* Register : Descriptor Polling Frequency
*
* The Descriptor Polling Frequency register has one defined bit field.
*
* POLL_FREQ
*
* Detailed description available in their individual bitfields
*
* Register Layout
*
* Bits | Access | Reset | Description
* :--------|:-------|:------|:------------
* [15:0] | R/W | 0x0 | POLL_FREQ
* [31:16] | R | 0x0 | RESERVED
*
*/
/* bits making up the "DESC_POLL_FREQ" register */
/* the POLL_FREQ bit field in the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ register field value. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_SET_MASK 0xFFFF
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_CLR_MASK 0xFFFF0000
/* The bit offset of the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ register field. */
#define ALT_MSGDMA_PREFETCHER_CTRL_RUN_BIT_OFFSET 0
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_GET(value) (((value) & 0x0000FFFF) >> 0)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_SET(value) (((value) << 0) & 0x0000FFFF)
/*
* Register : Status
*
* The Status register has one defined bit field.
*
* IRQ
*
* Detailed description available in their individual bitfields
*
* Register Layout
*
* Bits | Access | Reset | Description
* :--------|:-------|:------|:------------
* [0] | R/W1C | 0x0 | IRQ
* [31:1] | R | 0x0 | RESERVED
*
*/
/* bits making up the "STATUS" register */
/* the IRQ bit field in the ALT_MSGDMA_PREFETCHER_STATUS register */
/* The mask used to set the ALT_MSGDMA_PREFETCHER_STATUS_IRQ register field value. */
#define ALT_MSGDMA_PREFETCHER_STATUS_IRQ_SET_MASK 0x1
/* The mask used to clear the ALT_MSGDMA_PREFETCHER_STATUS_IRQ register field value. */
#define ALT_MSGDMA_PREFETCHER_STATUS_IRQ_CLR_MASK 0xFFFFFFFE
/* The bit offset of the ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ register field. */
#define ALT_MSGDMA_PREFETCHER_STATUS_IRQ_BIT_OFFSET 0
/* Extracts the ALT_MSGDMA_PREFETCHER_CTRL_RUN field value from a register. */
#define ALT_MSGDMA_PREFETCHER_STATUS_IRQ_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_MSGDMA_PREFETCHER_CTRL_RUN register field value suitable for setting the register. */
#define ALT_MSGDMA_PREFETCHER_STATUS_IRQ_SET(value) (((value) << 0) & 0x00000001)
/*****************************************************************/
/*** READ/WRITE macros for the MSGDMA PREFETCHER registers ***/
/*****************************************************************/
/* ALT_MSGDMA_PREFETCHER_CONTROL_REG */
#define IORD_ALT_MSGDMA_PREFETCHER_CONTROL(base) \
IORD_32DIRECT(base, ALT_MSGDMA_PREFETCHER_CONTROL_OFST)
#define IOWR_ALT_MSGDMA_PREFETCHER_CONTROL(base, data) \
IOWR_32DIRECT(base, ALT_MSGDMA_PREFETCHER_CONTROL_OFST, data)
/* ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_REG */
#define IORD_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW(base) \
IORD_32DIRECT(base, ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_OFST)
#define IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW(base, data) \
IOWR_32DIRECT(base, ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW_OFST, data)
/* ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_REG */
#define IORD_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH(base) \
IORD_32DIRECT(base, ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_OFST)
#define IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH(base, data) \
IOWR_32DIRECT(base, ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH_OFST, data)
/* ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLLING_FREQ_REG */
#define IORD_ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLLING_FREQ(base) \
IORD_32DIRECT(base, ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_OFST)
#define IOWR_ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLLING_FREQ(base, data) \
IOWR_32DIRECT(base, ALT_MSGDMA_PREFETCHER_DESCRIPTOR_POLL_FREQ_OFST, data)
/* ALT_MSGDMA_PREFETCHER_STATUS_REG */
#define IORD_ALT_MSGDMA_PREFETCHER_STATUS(base) \
IORD_32DIRECT(base, ALT_MSGDMA_PREFETCHER_STATUS_OFST)
#define IOWR_ALT_MSGDMA_PREFETCHER_STATUS(base, data) \
IOWR_32DIRECT(base, ALT_MSGDMA_PREFETCHER_STATUS_OFST, data)
#endif /*ALT_MSGDMA_PREFETCHER_REGS_H_*/