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

📄 ps7_init.c

📁 自学ZedBoard:使用IP通过ARM PS访问FPGA(源代码)
💻 C
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************
*
* (c) Copyright 2003-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 ps7_init.c
*
* This file is automatically generated 
*
*****************************************************************************/

#include "ps7_init.h"

unsigned long ps7_pll_init_data[] = {
    // START: top
    // .. START: SLCR SETTINGS
    // .. UNLOCK_KEY = 0XDF0D
    // .. ==> 0XF8000008[15:0] = 0x0000DF0DU
    // ..     ==> MASK : 0x0000FFFFU    VAL : 0x0000DF0DU
    // .. 
    EMIT_MASKWRITE(0XF8000008, 0x0000FFFFU ,0x0000DF0DU),
    // .. FINISH: SLCR SETTINGS
    // .. START: PLL SLCR REGISTERS
    // .. .. START: ARM PLL INIT
    // .. .. PLL_RES = 0x2
    // .. .. ==> 0XF8000110[7:4] = 0x00000002U
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x00000020U
    // .. .. PLL_CP = 0x2
    // .. .. ==> 0XF8000110[11:8] = 0x00000002U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000200U
    // .. .. LOCK_CNT = 0xfa
    // .. .. ==> 0XF8000110[21:12] = 0x000000FAU
    // .. ..     ==> MASK : 0x003FF000U    VAL : 0x000FA000U
    // .. .. 
    EMIT_MASKWRITE(0XF8000110, 0x003FFFF0U ,0x000FA220U),
    // .. .. .. START: UPDATE FB_DIV
    // .. .. .. PLL_FDIV = 0x28
    // .. .. .. ==> 0XF8000100[18:12] = 0x00000028U
    // .. .. ..     ==> MASK : 0x0007F000U    VAL : 0x00028000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000100, 0x0007F000U ,0x00028000U),
    // .. .. .. FINISH: UPDATE FB_DIV
    // .. .. .. START: BY PASS PLL
    // .. .. .. PLL_BYPASS_FORCE = 1
    // .. .. .. ==> 0XF8000100[4:4] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000010U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000010U),
    // .. .. .. FINISH: BY PASS PLL
    // .. .. .. START: ASSERT RESET
    // .. .. .. PLL_RESET = 1
    // .. .. .. ==> 0XF8000100[0:0] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000001U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000001U),
    // .. .. .. FINISH: ASSERT RESET
    // .. .. .. START: DEASSERT RESET
    // .. .. .. PLL_RESET = 0
    // .. .. .. ==> 0XF8000100[0:0] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000100, 0x00000001U ,0x00000000U),
    // .. .. .. FINISH: DEASSERT RESET
    // .. .. .. START: CHECK PLL STATUS
    // .. .. .. ARM_PLL_LOCK = 1
    // .. .. .. ==> 0XF800010C[0:0] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000001U
    // .. .. .. 
    EMIT_MASKPOLL(0XF800010C, 0x00000001U),
    // .. .. .. FINISH: CHECK PLL STATUS
    // .. .. .. START: REMOVE PLL BY PASS
    // .. .. .. PLL_BYPASS_FORCE = 0
    // .. .. .. ==> 0XF8000100[4:4] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000100, 0x00000010U ,0x00000000U),
    // .. .. .. FINISH: REMOVE PLL BY PASS
    // .. .. .. SRCSEL = 0x0
    // .. .. .. ==> 0XF8000120[5:4] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000030U    VAL : 0x00000000U
    // .. .. .. DIVISOR = 0x2
    // .. .. .. ==> 0XF8000120[13:8] = 0x00000002U
    // .. .. ..     ==> MASK : 0x00003F00U    VAL : 0x00000200U
    // .. .. .. CPU_6OR4XCLKACT = 0x1
    // .. .. .. ==> 0XF8000120[24:24] = 0x00000001U
    // .. .. ..     ==> MASK : 0x01000000U    VAL : 0x01000000U
    // .. .. .. CPU_3OR2XCLKACT = 0x1
    // .. .. .. ==> 0XF8000120[25:25] = 0x00000001U
    // .. .. ..     ==> MASK : 0x02000000U    VAL : 0x02000000U
    // .. .. .. CPU_2XCLKACT = 0x1
    // .. .. .. ==> 0XF8000120[26:26] = 0x00000001U
    // .. .. ..     ==> MASK : 0x04000000U    VAL : 0x04000000U
    // .. .. .. CPU_1XCLKACT = 0x1
    // .. .. .. ==> 0XF8000120[27:27] = 0x00000001U
    // .. .. ..     ==> MASK : 0x08000000U    VAL : 0x08000000U
    // .. .. .. CPU_PERI_CLKACT = 0x1
    // .. .. .. ==> 0XF8000120[28:28] = 0x00000001U
    // .. .. ..     ==> MASK : 0x10000000U    VAL : 0x10000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000120, 0x1F003F30U ,0x1F000200U),
    // .. .. FINISH: ARM PLL INIT
    // .. .. START: DDR PLL INIT
    // .. .. PLL_RES = 0x2
    // .. .. ==> 0XF8000114[7:4] = 0x00000002U
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x00000020U
    // .. .. PLL_CP = 0x2
    // .. .. ==> 0XF8000114[11:8] = 0x00000002U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000200U
    // .. .. LOCK_CNT = 0x12c
    // .. .. ==> 0XF8000114[21:12] = 0x0000012CU
    // .. ..     ==> MASK : 0x003FF000U    VAL : 0x0012C000U
    // .. .. 
    EMIT_MASKWRITE(0XF8000114, 0x003FFFF0U ,0x0012C220U),
    // .. .. .. START: UPDATE FB_DIV
    // .. .. .. PLL_FDIV = 0x20
    // .. .. .. ==> 0XF8000104[18:12] = 0x00000020U
    // .. .. ..     ==> MASK : 0x0007F000U    VAL : 0x00020000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000104, 0x0007F000U ,0x00020000U),
    // .. .. .. FINISH: UPDATE FB_DIV
    // .. .. .. START: BY PASS PLL
    // .. .. .. PLL_BYPASS_FORCE = 1
    // .. .. .. ==> 0XF8000104[4:4] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000010U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000010U),
    // .. .. .. FINISH: BY PASS PLL
    // .. .. .. START: ASSERT RESET
    // .. .. .. PLL_RESET = 1
    // .. .. .. ==> 0XF8000104[0:0] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000001U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000001U),
    // .. .. .. FINISH: ASSERT RESET
    // .. .. .. START: DEASSERT RESET
    // .. .. .. PLL_RESET = 0
    // .. .. .. ==> 0XF8000104[0:0] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000104, 0x00000001U ,0x00000000U),
    // .. .. .. FINISH: DEASSERT RESET
    // .. .. .. START: CHECK PLL STATUS
    // .. .. .. DDR_PLL_LOCK = 1
    // .. .. .. ==> 0XF800010C[1:1] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000002U    VAL : 0x00000002U
    // .. .. .. 
    EMIT_MASKPOLL(0XF800010C, 0x00000002U),
    // .. .. .. FINISH: CHECK PLL STATUS
    // .. .. .. START: REMOVE PLL BY PASS
    // .. .. .. PLL_BYPASS_FORCE = 0
    // .. .. .. ==> 0XF8000104[4:4] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000104, 0x00000010U ,0x00000000U),
    // .. .. .. FINISH: REMOVE PLL BY PASS
    // .. .. .. DDR_3XCLKACT = 0x1
    // .. .. .. ==> 0XF8000124[0:0] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000001U
    // .. .. .. DDR_2XCLKACT = 0x1
    // .. .. .. ==> 0XF8000124[1:1] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000002U    VAL : 0x00000002U
    // .. .. .. DDR_3XCLK_DIVISOR = 0x2
    // .. .. .. ==> 0XF8000124[25:20] = 0x00000002U
    // .. .. ..     ==> MASK : 0x03F00000U    VAL : 0x00200000U
    // .. .. .. DDR_2XCLK_DIVISOR = 0x3
    // .. .. .. ==> 0XF8000124[31:26] = 0x00000003U
    // .. .. ..     ==> MASK : 0xFC000000U    VAL : 0x0C000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000124, 0xFFF00003U ,0x0C200003U),
    // .. .. FINISH: DDR PLL INIT
    // .. .. START: IO PLL INIT
    // .. .. PLL_RES = 0xc
    // .. .. ==> 0XF8000118[7:4] = 0x0000000CU
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x000000C0U
    // .. .. PLL_CP = 0x2
    // .. .. ==> 0XF8000118[11:8] = 0x00000002U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000200U
    // .. .. LOCK_CNT = 0x145
    // .. .. ==> 0XF8000118[21:12] = 0x00000145U
    // .. ..     ==> MASK : 0x003FF000U    VAL : 0x00145000U
    // .. .. 
    EMIT_MASKWRITE(0XF8000118, 0x003FFFF0U ,0x001452C0U),
    // .. .. .. START: UPDATE FB_DIV
    // .. .. .. PLL_FDIV = 0x1e
    // .. .. .. ==> 0XF8000108[18:12] = 0x0000001EU
    // .. .. ..     ==> MASK : 0x0007F000U    VAL : 0x0001E000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000108, 0x0007F000U ,0x0001E000U),
    // .. .. .. FINISH: UPDATE FB_DIV
    // .. .. .. START: BY PASS PLL
    // .. .. .. PLL_BYPASS_FORCE = 1
    // .. .. .. ==> 0XF8000108[4:4] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000010U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000010U),
    // .. .. .. FINISH: BY PASS PLL
    // .. .. .. START: ASSERT RESET
    // .. .. .. PLL_RESET = 1
    // .. .. .. ==> 0XF8000108[0:0] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000001U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000001U),
    // .. .. .. FINISH: ASSERT RESET
    // .. .. .. START: DEASSERT RESET
    // .. .. .. PLL_RESET = 0
    // .. .. .. ==> 0XF8000108[0:0] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000108, 0x00000001U ,0x00000000U),
    // .. .. .. FINISH: DEASSERT RESET
    // .. .. .. START: CHECK PLL STATUS
    // .. .. .. IO_PLL_LOCK = 1
    // .. .. .. ==> 0XF800010C[2:2] = 0x00000001U
    // .. .. ..     ==> MASK : 0x00000004U    VAL : 0x00000004U
    // .. .. .. 
    EMIT_MASKPOLL(0XF800010C, 0x00000004U),
    // .. .. .. FINISH: CHECK PLL STATUS
    // .. .. .. START: REMOVE PLL BY PASS
    // .. .. .. PLL_BYPASS_FORCE = 0
    // .. .. .. ==> 0XF8000108[4:4] = 0x00000000U
    // .. .. ..     ==> MASK : 0x00000010U    VAL : 0x00000000U
    // .. .. .. 
    EMIT_MASKWRITE(0XF8000108, 0x00000010U ,0x00000000U),
    // .. .. .. FINISH: REMOVE PLL BY PASS
    // .. .. FINISH: IO PLL INIT
    // .. FINISH: PLL SLCR REGISTERS
    // .. START: LOCK IT BACK
    // .. LOCK_KEY = 0X767B
    // .. ==> 0XF8000004[15:0] = 0x0000767BU
    // ..     ==> MASK : 0x0000FFFFU    VAL : 0x0000767BU
    // .. 
    EMIT_MASKWRITE(0XF8000004, 0x0000FFFFU ,0x0000767BU),
    // .. FINISH: LOCK IT BACK
    // FINISH: top
    //
    EMIT_EXIT(),

    //
};

unsigned long ps7_clock_init_data[] = {

⌨️ 快捷键说明

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