⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xdevcfg_hw.h

📁 自学ZedBoard:使用IP通过ARM PS访问FPGA(源代码)
💻 H
字号:
/******************************************************************************** (c) Copyright 2011 Xilinx, Inc. All rights reserved.** This file contains confidential and proprietary information of Xilinx, Inc.* and is protected under U.S. and international copyright and other* intellectual property laws.** DISCLAIMER* This disclaimer is not a license and does not grant any rights to the* materials distributed herewith. Except as otherwise provided in a valid* license issued to you by Xilinx, and to the maximum extent permitted by* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS,* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;* and (2) Xilinx shall not be liable (whether in contract or tort, including* negligence, or under any other theory of liability) for any loss or damage* of any kind or nature related to, arising under or in connection with these* materials, including for any direct, or any indirect, special, incidental,* or consequential loss or damage (including loss of data, profits, goodwill,* or any type of loss or damage suffered as a result of any action brought by* a third party) even if such damage or loss was reasonably foreseeable or* Xilinx had been advised of the possibility of the same.** CRITICAL APPLICATIONS* Xilinx products are not designed or intended to be fail-safe, or for use in* any application requiring fail-safe performance, such as life-support or* safety devices or systems, Class III medical devices, nuclear facilities,* applications related to the deployment of airbags, or any other applications* that could lead to death, personal injury, or severe property or* environmental damage (individually and collectively, "Critical* Applications"). Customer assumes the sole risk and liability of any use of* Xilinx products in Critical Applications, subject only to applicable laws* and regulations governing limitations on product liability.** THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE* AT ALL TIMES.*******************************************************************************//****************************************************************************//**** @file xdevcfg_hw.h** This file contains the hardware interface to the Device Config Interface.** <pre>* MODIFICATION HISTORY:** Ver   Who Date     Changes* ----- --- -------- ---------------------------------------------* 1.00a hvm 02/07/11 First release* </pre>*******************************************************************************/#ifndef XDCFG_HW_H		/* prevent circular inclusions */#define XDCFG_HW_H		/* by using protection macros */#ifdef __cplusplusextern "C" {#endif/***************************** Include Files *********************************/#include "xil_types.h"#include "xil_io.h"/************************** Constant Definitions *****************************//** @name Register Map * Offsets of registers from the start of the device * @{ */#define XDCFG_CTRL_OFFSET		0x00 /**< Control Register */#define XDCFG_LOCK_OFFSET		0x04 /**< Lock Register */#define XDCFG_CFG_OFFSET		0x08 /**< Configuration Register */#define XDCFG_INT_STS_OFFSET		0x0C /**< Interrupt Status Register */#define XDCFG_INT_MASK_OFFSET		0x10 /**< Interrupt Mask Register */#define XDCFG_STATUS_OFFSET		0x14 /**< Status Register */#define XDCFG_DMA_SRC_ADDR_OFFSET	0x18 /**< DMA Source Address Register */#define XDCFG_DMA_DEST_ADDR_OFFSET	0x1C /**< DMA Destination Address Reg */#define XDCFG_DMA_SRC_LEN_OFFSET	0x20 /**< DMA Source Transfer Length */#define XDCFG_DMA_DEST_LEN_OFFSET	0x24 /**< DMA Destination Transfer */#define XDCFG_ROM_SHADOW_OFFSET		0x28 /**< DMA ROM Shadow Register */#define XDCFG_MULTIBOOT_ADDR_OFFSET	0x2C /**< Multi BootAddress Pointer */#define XDCFG_SW_ID_OFFSET		0x30 /**< Software ID Register */#define XDCFG_UNLOCK_OFFSET		0x34 /**< Unlock Register */#define XDCFG_MCTRL_OFFSET		0x80 /**< Miscellaneous Control Reg *//* @} *//** @name Control Register Bit definitions  * @{ */#define XDCFG_CTRL_FORCE_RST_MASK	0x80000000 /**< Force  into						     * Secure Reset						     */#define XDCFG_CTRL_PCFG_PROG_B_MASK	0x40000000 /**< Program signal to						     *  Reset FPGA						     */#define XDCFG_CTRL_PCAP_PR_MASK	  	0x08000000 /**< Enable PCAP for PR */#define XDCFG_CTRL_PCAP_MODE_MASK	0x04000000 /**< Enable PCAP */#define XDCFG_CTRL_PCAP_RATE_EN_MASK	0x02000000 /**< Enable PCAP send data						     *  to FPGA every 4 PCAP						     *  cycles						     */#define XDCFG_CTRL_MULTIBOOT_EN_MASK	0x01000000 /**< Multiboot Enable */#define XDCFG_CTRL_JTAG_CHAIN_DIS_MASK	0x00800000 /**< JTAG Chain Disable */#define XDCFG_CTRL_USER_MODE_MASK	0x00008000 /**< User Mode Mask */#define XDCFG_CTRL_PCFG_AES_EN_MASK	0x00000E00 /**< AES Enable Mask */#define XDCFG_CTRL_SEU_EN_MASK		0x00000100 /**< SEU Enable Mask */#define XDCFG_CTRL_SEC_EN_MASK		0x00000080 /**< Secure/Non Secure						     *  Status mask						     */#define XDCFG_CTRL_SPNIDEN_MASK		0x00000040 /**< Secure Non Invasive						     *  Debug Enable						     */#define XDCFG_CTRL_SPIDEN_MASK		0x00000020 /**< Secure Invasive						     *  Debug Enable						     */#define XDCFG_CTRL_NIDEN_MASK		0x00000010 /**< Non-Invasive Debug						     *  Enable						     */#define XDCFG_CTRL_DBGEN_MASK		0x00000008 /**< Invasive Debug						     *  Enable						     */#define XDCFG_CTRL_DAP_EN_MASK		0x00000007 /**< DAP Enable Mask *//* @} *//** @name Lock register bit definitions  * @{ */#define XDCFG_LOCK_AES_EN_MASK		0x00000008 /**< Lock AES_EN update */#define XDCFG_LOCK_SEU_MASK		0x00000004 /**< Lock SEU_En update */#define XDCFG_LOCK_SEC_MASK		0x00000002 /**< Lock SEC_EN and						     *  USER_MODE						     */#define XDCFG_LOCK_DBG_MASK		0x00000001 /**< This bit locks						     *  security config						     *  including: DAP_En,						     *  DBGEN,,						     *  NIDEN, SPNIEN						     *//*@}*//** @name Config Register Bit definitions  * @{ */#define XDCFG_CFG_RFIFO_TH_MASK	  	0x00000C00 /**< Read FIFO						     *  Threshold Mask						     */#define XDCFG_CFG_WFIFO_TH_MASK	  	0x00000300 /**< Write FIFO Threshold						     *  Mask						     */#define XDCFG_CFG_RCLK_EDGE_MASK	0x00000080 /**< Read data active						     *  clock edge						     */#define XDCFG_CFG_WCLK_EDGE_MASK	0x00000040 /**< Write data active						     *  clock edge						     */#define XDCFG_CFG_DISABLE_SRC_INC_MASK	0x00000020 /**< Disable Source address						     *  increment mask						     */#define XDCFG_CFG_DISABLE_DST_INC_MASK	0x00000010 /**< Disable Destination						     *  address increment						     *  mask						     */#define XDCFG_CFG_RD_ISSU_MASK		0x00000008 /**< AXI read issuing						     *  capability						     */#define XDCFG_CFG_WR_ISSU_MASK		0x00000004 /**< AXI write issuing						     *  capability						     */#define XDCFG_CFG_RDLEN_MASK	  	0x00000002 /**< AXI Read burst						     *  length  Mask						     */#define XDCFG_CFG_WRLEN_MASK	  	0x00000001 /**< AXI write burst						     *  length  Mask						     *//* @} *//** @name Interrupt Status/Mask Register Bit definitions  * @{ */#define XDCFG_IXR_AXI_WTO_MASK		0x00800000 /**< AXI Write Address						     *  or Data or response						     *  timeout						     */#define XDCFG_IXR_AXI_WERR_MASK		0x00400000 /**< AXI Write response						     *  error						     */#define XDCFG_IXR_AXI_RTO_MASK		0x00200000 /**< AXI Read Address or						     *  response timeout						     */#define XDCFG_IXR_AXI_RERR_MASK		0x00100000 /**< AXI Read response						     *  error						     */#define XDCFG_IXR_RX_FIFO_OV_MASK	0x00040000 /**< Rx FIFO Overflow */#define XDCFG_IXR_WR_FIFO_LVL_MASK	0x00020000 /**< Tx FIFO less than						     *  threshold */#define XDCFG_IXR_RD_FIFO_LVL_MASK	0x00010000 /**< Rx FIFO greater than						     *  threshold */#define XDCFG_IXR_DMA_CMD_ERR_MASK	0x00008000 /**< Illegal DMA command */#define XDCFG_IXR_DMA_Q_OV_MASK		0x00004000 /**< DMA command queue						     *  overflow						     */#define XDCFG_IXR_DMA_DONE_MASK		0x00002000 /**< DMA Command Done */#define XDCFG_IXR_D_P_DONE_MASK		0x00001000 /**< DMA and PCAP						     *  transfers Done						     */#define XDCFG_IXR_P2D_LEN_ERR_MASK	0x00000800 /**< PCAP to DMA transfer						     *  length error						     */#define XDCFG_IXR_PCFG_HMAC_ERR_MASK	0x00000040 /**< HMAC error mask */#define XDCFG_IXR_PCFG_SEU_ERR_MASK	0x00000020 /**< SEU Error mask */#define XDCFG_IXR_PCFG_POR_B_MASK	0x00000010 /**< FPGA POR mask */#define XDCFG_IXR_PCFG_CFG_RST_MASK	0x00000008 /**< FPGA Reset mask */#define XDCFG_IXR_PCFG_DONE_MASK	0x00000004 /**< Done Signal  Mask */#define XDCFG_IXR_PCFG_INIT_PE_MASK	0x00000002 /**< Detect Positive edge						     *  of Init Signal						     */#define XDCFG_IXR_PCFG_INIT_NE_MASK  	0x00000001 /**< Detect Negative edge						     *  of Init Signal						     */#define XDCFG_IXR_ERROR_FLAGS_MASK		(XDCFG_IXR_AXI_WTO_MASK | \						XDCFG_IXR_AXI_WERR_MASK | \						XDCFG_IXR_AXI_RTO_MASK |  \						XDCFG_IXR_AXI_RERR_MASK | \						XDCFG_IXR_RX_FIFO_OV_MASK | \						XDCFG_IXR_DMA_CMD_ERR_MASK |\						XDCFG_IXR_DMA_Q_OV_MASK |   \						XDCFG_IXR_P2D_LEN_ERR_MASK |\						XDCFG_IXR_PCFG_HMAC_ERR_MASK)#define XDCFG_IXR_ALL_MASK			0x00F7F8EF/* @} *//** @name Status Register Bit definitions  * @{ */#define XDCFG_STATUS_DMA_CMD_Q_F_MASK	0x80000000 /**< DMA command						     *  Queue full						     */#define XDCFG_STATUS_DMA_CMD_Q_E_MASK	0x40000000 /**< DMA command						     *  Queue empty						     */#define XDCFG_STATUS_DMA_DONE_CNT_MASK	0x30000000 /**< Number of						     *  completed DMA						     *  transfers						     */#define XDCFG_STATUS_RX_FIFO_LVL_MASK	0x01F000000 /**< Rx FIFO level */#define XDCFG_STATUS_TX_FIFO_LVL_MASK	0x0007F000  /**< Tx FIFO level */#define XDCFG_STATUS_SECURE_RST_MASK	0x00000080  /**< Secure Reset						      *  POR Status						      */#define XDCFG_STATUS_ILLEGAL_APB_ACCESS_MASK 	0x00000040 /**< Illegal APB							     *  access						  	     */#define XDCFG_STATUS_PCFG_INIT_MASK		0x00000010 /**< FPGA Init							     *  Status							     */#define XDCFG_STATUS_EFUSE_SW_RESERVE_MASK	0x00000008 /**< Efuse Reserved							     *  Status							     */#define XDCFG_STATUS_EFUSE_SEC_EN_MASK		0x00000004 /**< Efuse Security						     	     *  Enable Status						     	     */#define XDCFG_STATUS_EFUSE_JTAG_DIS_MASK	0x00000002 /**< EFuse JTAG							     *  Disable							     *  status							     */#define XDCFG_STATUS_SECURE_DIS_MASK		0x00000001 /**< Security							     *  Disable Status							     *//* @} *//** @name DMA Source/Destination Transfer Length Register Bit definitions * @{ */#define XDCFG_DMA_LEN_MASK		0x7FFFFFF /**< Length Mask *//*@}*//** @name Miscellaneous Control  Register Bit definitions  * @{ */#define XDCFG_MCTRL_PCAP_LPBK_MASK	0x00000010 /**< PCAP loopback mask */#define XDCFG_MCTRL_RFIFO_FLUSH_MASK	0x00000002 /**< Flush Rx FIFO */#define XDCFG_MCTRL_WFIFO_FLUSH_MASK	0x00000001 /**< Flush Tx FIFO *//* @} *//** @name FIFO Threshold Bit definitions  * @{ */#define XDCFG_CFG_FIFO_QUARTER		0x0	 /**< Quarter empty */#define XDCFG_CFG_FIFO_HALF		0x1	 /**< Half empty */#define XDCFG_CFG_FIFO_3QUARTER		0x2	 /**< 3/4 empty */#define XDCFG_CFG_FIFO_EMPTY		0x4	 /**< Empty *//* @}*//* Miscellaneous constant values */#define XDCFG_DMA_INVALID_ADDRESS	0xFFFFFFFF  /**< Invalid DMA address */#define XDCFG_UNLOCK_DATA		0x757BDF0D  /**< First APB access data*/#define XDCFG_BASE_ADDRESS		0xFE007000  /**< Device Config base						      * address						      *//**************************** Type Definitions *******************************//***************** Macros (Inline Functions) Definitions *********************//****************************************************************************//**** Read the given register.** @param	BaseAddr is the base address of the device* @param	RegOffset is the register offset to be read** @return	The 32-bit value of the register** @note		C-style signature:*		u32 XDcfg_ReadReg(u32 BaseAddr, u32 RegOffset)******************************************************************************/#define XDcfg_ReadReg(BaseAddr, RegOffset)		\	Xil_In32((BaseAddr) + (RegOffset))/****************************************************************************//**** Write to the given register.** @param	BaseAddr is the base address of the device* @param	RegOffset is the register offset to be written* @param	Data is the 32-bit value to write to the register** @return	None.** @note		C-style signature:*		void XDcfg_WriteReg(u32 BaseAddr, u32 RegOffset, u32 Data)******************************************************************************/#define XDcfg_WriteReg(BaseAddr, RegOffset, Data)	\	Xil_Out32((BaseAddr) + (RegOffset), (Data))/************************** Function Prototypes ******************************//************************** Variable Definitions *****************************/#ifdef __cplusplus}#endif#endif	/* end of protection macro */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -