cfa: Added files to cfa driver.

Added source files, integration files, self test example,
mdd and tcl files to cfa driver.

Signed-off-by: Shravan Kumar A <skumara@xilinx.com>
Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Acked-by: Srikanth Vemula <svemula@xilinx.com>
This commit is contained in:
Shravan Kumar A 2014-07-15 12:18:55 +05:30 committed by Jagannadha Sutradharudu Teki
parent 3e69599b57
commit 31d5d373fe
38 changed files with 7033 additions and 432 deletions

View file

@ -1,9 +1,9 @@
###############################################################################
##############################################################################
#
# Copyright (C) 2001 - 2014 Xilinx, Inc. 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
# 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
@ -28,9 +28,10 @@
# in advertising or otherwise to promote the sale, use or other dealings in
# this Software without prior written authorization from Xilinx.
#
###############################################################################
##############################################################################
proc generate {drv_handle} {
xdefine_include_file $drv_handle "xparameters.h" "CFA" "C_BASEADDR" "C_HIGHADDR"
xdefine_canonical_xpars $drv_handle "xparameters.h" "CFA" "C_BASEADDR" "C_HIGHADDR"
xdefine_include_file $drv_handle "xparameters.h" "CFA" "NUM_INSTANCES" "DEVICE_ID" "C_BASEADDR" "C_HIGHADDR" "C_S_AXIS_VIDEO_FORMAT" "C_M_AXIS_VIDEO_FORMAT" "C_S_AXI_CLK_FREQ_HZ" "C_BAYER_PHASE" "C_ACTIVE_ROWS" "C_ACTIVE_COLS" "C_MAX_COLS" "C_HAS_INTC_IF" "C_HAS_DEBUG" "C_HOR_FILT" "C_FRINGE_TOL"
xdefine_config_file $drv_handle "xcfa_g.c" "XCfa" "DEVICE_ID" "C_BASEADDR" "C_S_AXIS_VIDEO_FORMAT" "C_M_AXIS_VIDEO_FORMAT" "C_S_AXI_CLK_FREQ_HZ" "C_BAYER_PHASE" "C_ACTIVE_ROWS" "C_ACTIVE_COLS" "C_MAX_COLS" "C_HAS_INTC_IF" "C_HAS_DEBUG" "C_HOR_FILT" "C_FRINGE_TOL"
xdefine_canonical_xpars $drv_handle "xparameters.h" "CFA" "DEVICE_ID" "C_BASEADDR" "C_HIGHADDR" "C_S_AXIS_VIDEO_FORMAT" "C_M_AXIS_VIDEO_FORMAT" "C_S_AXI_CLK_FREQ_HZ" "C_BAYER_PHASE" "C_ACTIVE_ROWS" "C_ACTIVE_COLS" "C_MAX_COLS" "C_HAS_INTC_IF" "C_HAS_DEBUG" "C_HOR_FILT" "C_FRINGE_TOL"
}

View file

@ -0,0 +1,28 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class List
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="struct_x_cfa.html">XCfa</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td class="indexvalue"></td></tr>
</table>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,33 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
File Index
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="xcfa_8c.html">xcfa.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa_8h.html">xcfa.h</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa__g_8c.html">xcfa_g.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa__hw_8h.html">xcfa_hw.h</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa__intr_8c.html">xcfa_intr.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa__selftest_8c.html">xcfa_selftest.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="xcfa__sinit_8c.html">xcfa_sinit.c</a></td><td class="indexvalue"></td></tr>
</table>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
Here is a list of all class members with links to the classes they belong to:
<p>
<ul>
<li>ActiveColumns
: <a class="el" href="struct_x_cfa___config.html#c5a229b634347b8b80dd27dd8eb276bb">XCfa_Config</a><li>ActiveRows
: <a class="el" href="struct_x_cfa___config.html#23916ff1d5e652388fcab8bb4b550646">XCfa_Config</a><li>BaseAddress
: <a class="el" href="struct_x_cfa___config.html#63b031c8d1b4b1020d0fc91be4262801">XCfa_Config</a><li>BayerPhase
: <a class="el" href="struct_x_cfa___config.html#3d2804f5721a8aff50e2d9a8317979b5">XCfa_Config</a><li>Config
: <a class="el" href="struct_x_cfa.html#3b7119572a7467a518f039bae5aff2e8">XCfa</a><li>DeviceId
: <a class="el" href="struct_x_cfa___config.html#6f71f268fccfc472a042201b20c15dc9">XCfa_Config</a><li>ErrCallBack
: <a class="el" href="struct_x_cfa.html#964a82ae743e41cac0f4a60132e27bc1">XCfa</a><li>ErrRef
: <a class="el" href="struct_x_cfa.html#ea775a832ce21cf22f5be73dd6810d27">XCfa</a><li>FrameDoneCallBack
: <a class="el" href="struct_x_cfa.html#b1487cfca4b657876558b3e346021888">XCfa</a><li>FrameDoneRef
: <a class="el" href="struct_x_cfa.html#baa1283bb2b192e0386980da64a428fe">XCfa</a><li>FringeTol
: <a class="el" href="struct_x_cfa___config.html#8003a01eaa5d89f4552c66a006a494e3">XCfa_Config</a><li>HasDebug
: <a class="el" href="struct_x_cfa___config.html#667105384e23dfa0109054e03ce30099">XCfa_Config</a><li>HasIntcIf
: <a class="el" href="struct_x_cfa___config.html#fb0c20c5fd3461e9ad60a9940dfba5ba">XCfa_Config</a><li>HorFilt
: <a class="el" href="struct_x_cfa___config.html#8a043badf3d5d85e9ff3308340f3e772">XCfa_Config</a><li>HSize
: <a class="el" href="struct_x_cfa.html#bd45e904c2d6011b48d6d415da8e5ed6">XCfa</a><li>IsReady
: <a class="el" href="struct_x_cfa.html#083db09d4f7da1dfb378308138ccb71a">XCfa</a><li>MasterAxisVideoFormat
: <a class="el" href="struct_x_cfa___config.html#923e29447ce211b6b0bd4e73f2236bef">XCfa_Config</a><li>MaxColumns
: <a class="el" href="struct_x_cfa___config.html#dead7773f4ec38712f23f9664e029f11">XCfa_Config</a><li>ProcStartCallBack
: <a class="el" href="struct_x_cfa.html#7c14d64bbce7bd370c18d4aaba0dda01">XCfa</a><li>ProcStartRef
: <a class="el" href="struct_x_cfa.html#35f5625707d281768891e088e6a3dd6e">XCfa</a><li>SlaveAxiClkFreqHz
: <a class="el" href="struct_x_cfa___config.html#9f10ac0aebde4f98b514db29b3a80ca6">XCfa_Config</a><li>SlaveAxisVideoFormat
: <a class="el" href="struct_x_cfa___config.html#e5be4d320b5c127da08e019dd2ca4bcb">XCfa_Config</a><li>VSize
: <a class="el" href="struct_x_cfa.html#882a5065e2842a2bca1f38e1f4fa81d3">XCfa</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members - Variables
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>ActiveColumns
: <a class="el" href="struct_x_cfa___config.html#c5a229b634347b8b80dd27dd8eb276bb">XCfa_Config</a><li>ActiveRows
: <a class="el" href="struct_x_cfa___config.html#23916ff1d5e652388fcab8bb4b550646">XCfa_Config</a><li>BaseAddress
: <a class="el" href="struct_x_cfa___config.html#63b031c8d1b4b1020d0fc91be4262801">XCfa_Config</a><li>BayerPhase
: <a class="el" href="struct_x_cfa___config.html#3d2804f5721a8aff50e2d9a8317979b5">XCfa_Config</a><li>Config
: <a class="el" href="struct_x_cfa.html#3b7119572a7467a518f039bae5aff2e8">XCfa</a><li>DeviceId
: <a class="el" href="struct_x_cfa___config.html#6f71f268fccfc472a042201b20c15dc9">XCfa_Config</a><li>ErrCallBack
: <a class="el" href="struct_x_cfa.html#964a82ae743e41cac0f4a60132e27bc1">XCfa</a><li>ErrRef
: <a class="el" href="struct_x_cfa.html#ea775a832ce21cf22f5be73dd6810d27">XCfa</a><li>FrameDoneCallBack
: <a class="el" href="struct_x_cfa.html#b1487cfca4b657876558b3e346021888">XCfa</a><li>FrameDoneRef
: <a class="el" href="struct_x_cfa.html#baa1283bb2b192e0386980da64a428fe">XCfa</a><li>FringeTol
: <a class="el" href="struct_x_cfa___config.html#8003a01eaa5d89f4552c66a006a494e3">XCfa_Config</a><li>HasDebug
: <a class="el" href="struct_x_cfa___config.html#667105384e23dfa0109054e03ce30099">XCfa_Config</a><li>HasIntcIf
: <a class="el" href="struct_x_cfa___config.html#fb0c20c5fd3461e9ad60a9940dfba5ba">XCfa_Config</a><li>HorFilt
: <a class="el" href="struct_x_cfa___config.html#8a043badf3d5d85e9ff3308340f3e772">XCfa_Config</a><li>HSize
: <a class="el" href="struct_x_cfa.html#bd45e904c2d6011b48d6d415da8e5ed6">XCfa</a><li>IsReady
: <a class="el" href="struct_x_cfa.html#083db09d4f7da1dfb378308138ccb71a">XCfa</a><li>MasterAxisVideoFormat
: <a class="el" href="struct_x_cfa___config.html#923e29447ce211b6b0bd4e73f2236bef">XCfa_Config</a><li>MaxColumns
: <a class="el" href="struct_x_cfa___config.html#dead7773f4ec38712f23f9664e029f11">XCfa_Config</a><li>ProcStartCallBack
: <a class="el" href="struct_x_cfa.html#7c14d64bbce7bd370c18d4aaba0dda01">XCfa</a><li>ProcStartRef
: <a class="el" href="struct_x_cfa.html#35f5625707d281768891e088e6a3dd6e">XCfa</a><li>SlaveAxiClkFreqHz
: <a class="el" href="struct_x_cfa___config.html#9f10ac0aebde4f98b514db29b3a80ca6">XCfa_Config</a><li>SlaveAxisVideoFormat
: <a class="el" href="struct_x_cfa___config.html#e5be4d320b5c127da08e019dd2ca4bcb">XCfa_Config</a><li>VSize
: <a class="el" href="struct_x_cfa.html#882a5065e2842a2bca1f38e1f4fa81d3">XCfa</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,165 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_x"><span>x</span></a></li>
</ul>
</div>
<p>
Here is a list of all file members with links to the files they belong to:
<p>
<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
<li>BayerPhaseCombination
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c">xcfa.h</a></ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>CFA_ACTIVE_SIZE
: <a class="el" href="xcfa__hw_8h.html#76f3333a17794a8f6c7d32f6f336420f">xcfa_hw.h</a><li>CFA_BAYER_PHASE
: <a class="el" href="xcfa__hw_8h.html#afec81a641d4e1aaf96b00addd10b7a5">xcfa_hw.h</a><li>CFA_CONTROL
: <a class="el" href="xcfa__hw_8h.html#628847f0b049f8eef5f78ec69b87401d">xcfa_hw.h</a><li>CFA_CTL_CS_MASK
: <a class="el" href="xcfa__hw_8h.html#3b8a014394724a8362e4e7d978243ae7">xcfa_hw.h</a><li>CFA_CTL_EN_MASK
: <a class="el" href="xcfa__hw_8h.html#06eff2324518ce933d36ce18ae6aedac">xcfa_hw.h</a><li>CFA_CTL_RUE_MASK
: <a class="el" href="xcfa__hw_8h.html#e6dd30d83c23e580f14d6a14d74f7dd6">xcfa_hw.h</a><li>CFA_ERROR
: <a class="el" href="xcfa__hw_8h.html#4cbb589607d51146541d36721ae7e4b2">xcfa_hw.h</a><li>CFA_In32
: <a class="el" href="xcfa__hw_8h.html#53bd8238994e13941da7c5a94977b58e">xcfa_hw.h</a><li>CFA_IRQ_EN
: <a class="el" href="xcfa__hw_8h.html#b307f0e6114ad91f50fb52ea4e8d9c78">xcfa_hw.h</a><li>CFA_Out32
: <a class="el" href="xcfa__hw_8h.html#d76c4b22403a8cfadbbbc07516651fa7">xcfa_hw.h</a><li>CFA_ReadReg
: <a class="el" href="xcfa__hw_8h.html#6f605800af5c2fda1c6bc1934aa9c5d0">xcfa_hw.h</a><li>CFA_RST_AUTORESET
: <a class="el" href="xcfa__hw_8h.html#1a4aa2dd71ae3a74a8315d6233bfa07f">xcfa_hw.h</a><li>CFA_RST_RESET
: <a class="el" href="xcfa__hw_8h.html#b54e26b7000b5238c8b8ec7f977a3804">xcfa_hw.h</a><li>CFA_STATUS
: <a class="el" href="xcfa__hw_8h.html#d9cbb44cb6dd9712002b313733b187a3">xcfa_hw.h</a><li>CFA_SYSDEBUG0
: <a class="el" href="xcfa__hw_8h.html#8351943a3acc4c449815090924a3a1b8">xcfa_hw.h</a><li>CFA_SYSDEBUG1
: <a class="el" href="xcfa__hw_8h.html#9f4639434268bd9f0190f23028aaec56">xcfa_hw.h</a><li>CFA_SYSDEBUG2
: <a class="el" href="xcfa__hw_8h.html#68e3c9de286404ff5e4b419cb87f092e">xcfa_hw.h</a><li>CFA_VERSION
: <a class="el" href="xcfa__hw_8h.html#3a37048ab3b419abe698c02b16ff534a">xcfa_hw.h</a><li>CFA_WriteReg
: <a class="el" href="xcfa__hw_8h.html#2b43872635233ce3d342a652b3221972">xcfa_hw.h</a></ul>
<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
<li>XCFA_8_BIT_MASK
: <a class="el" href="xcfa__hw_8h.html#6cf683d0f92ddf32cebc97eef4d1b38a">xcfa_hw.h</a><li>XCFA_ACTIVE_SIZE_OFFSET
: <a class="el" href="xcfa__hw_8h.html#62e5eb41f86025221effbc4816aa377a">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_LINE_MASK
: <a class="el" href="xcfa__hw_8h.html#216e31e0614c640956a8d4f00796b366">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_LINE_SHIFT
: <a class="el" href="xcfa__hw_8h.html#ac36086c6e79a0e3e564832e2c478e19">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_PIXEL_MASK
: <a class="el" href="xcfa__hw_8h.html#8341437781b319eef5f562fb8947205e">xcfa_hw.h</a><li>XCFA_BAYER_PHASE_MASK
: <a class="el" href="xcfa__hw_8h.html#64855c0d80b23e4a2adb7264b4748278">xcfa_hw.h</a><li>XCFA_BAYER_PHASE_OFFSET
: <a class="el" href="xcfa__hw_8h.html#280a46a5bd6727131473f5c42e266d10">xcfa_hw.h</a><li>XCFA_BGBG_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344cd49bcfa76555d078d8704371d65db911">xcfa.h</a><li>XCfa_CallBack
: <a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">xcfa.h</a><li>XCfa_CfgInitialize()
: <a class="el" href="xcfa_8h.html#f21a4a9fe167729fd388e53a9ae467d9">xcfa.h</a>, <a class="el" href="xcfa_8c.html#f21a4a9fe167729fd388e53a9ae467d9">xcfa.c</a><li>XCfa_ConfigTable
: <a class="el" href="xcfa__g_8c.html#41fea36b791c10aa93e26f29cf72da68">xcfa_g.c</a><li>XCFA_CONTROL_OFFSET
: <a class="el" href="xcfa__hw_8h.html#4d9258611512a367a6409eb9680b281f">xcfa_hw.h</a><li>XCFA_CTL_AUTORESET_MASK
: <a class="el" href="xcfa__hw_8h.html#55ebebcb836c04b9d3a0aee7ab334d6d">xcfa_hw.h</a><li>XCFA_CTL_BPE_MASK
: <a class="el" href="xcfa__hw_8h.html#fd6df87f12b63f52fae813b1e53f2587">xcfa_hw.h</a><li>XCFA_CTL_RESET_MASK
: <a class="el" href="xcfa__hw_8h.html#51983418ed95f2d8a65fc556ed0ce954">xcfa_hw.h</a><li>XCFA_CTL_RUE_MASK
: <a class="el" href="xcfa__hw_8h.html#74f3589a4e236b3b275124108b596af4">xcfa_hw.h</a><li>XCFA_CTL_SW_EN_MASK
: <a class="el" href="xcfa__hw_8h.html#1d888e578e3393cc25588dddd0d9c892">xcfa_hw.h</a><li>XCFA_CTL_TPE_MASK
: <a class="el" href="xcfa__hw_8h.html#b68d6c41173d75844aee72130216487f">xcfa_hw.h</a><li>XCfa_Disable
: <a class="el" href="xcfa_8h.html#1e39b3456a5403d5404bd58fd04142e3">xcfa.h</a><li>XCfa_DisableDbgBypass()
: <a class="el" href="xcfa_8h.html#a09e739bf44e6261b9040b1c94fa4a09">xcfa.h</a>, <a class="el" href="xcfa_8c.html#a09e739bf44e6261b9040b1c94fa4a09">xcfa.c</a><li>XCfa_DisableDbgTestPattern()
: <a class="el" href="xcfa_8h.html#24ee7bc8ecaa7b4a2ade87fe249dd991">xcfa.h</a>, <a class="el" href="xcfa_8c.html#24ee7bc8ecaa7b4a2ade87fe249dd991">xcfa.c</a><li>XCfa_Enable
: <a class="el" href="xcfa_8h.html#e33e6a6cfea43dce621494607950f246">xcfa.h</a><li>XCfa_EnableDbgByPass()
: <a class="el" href="xcfa_8h.html#2950494fe006bb716d867057fa40fe84">xcfa.h</a>, <a class="el" href="xcfa_8c.html#2950494fe006bb716d867057fa40fe84">xcfa.c</a><li>XCfa_EnableDbgTestPattern()
: <a class="el" href="xcfa_8h.html#e26d790d91c21b1af050608d074e1d14">xcfa.h</a>, <a class="el" href="xcfa_8c.html#e26d790d91c21b1af050608d074e1d14">xcfa.c</a><li>XCFA_ERR_EOL_EARLY_MASK
: <a class="el" href="xcfa__hw_8h.html#b5d67280595abb23454d4da9db10dbd8">xcfa_hw.h</a><li>XCFA_ERR_EOL_LATE_MASK
: <a class="el" href="xcfa__hw_8h.html#2211bd2c6e66c6e2cfcae8669fd1830e">xcfa_hw.h</a><li>XCFA_ERR_SOF_EARLY_MASK
: <a class="el" href="xcfa__hw_8h.html#ebeb237b1c390f1d4d1b6682e92c514e">xcfa_hw.h</a><li>XCFA_ERR_SOF_LATE_MASK
: <a class="el" href="xcfa__hw_8h.html#821de45c83939bfc204801dcb44399b3">xcfa_hw.h</a><li>XCFA_ERROR_OFFSET
: <a class="el" href="xcfa__hw_8h.html#86f3c4570bfc5a3f9bfcae08d2c139cb">xcfa_hw.h</a><li>XCfa_ErrorCallBack
: <a class="el" href="xcfa_8h.html#d93600080025d0a2593f3a25f39eb8a2">xcfa.h</a><li>XCFA_GBGB_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c877fcf299fdf12f854fd4836bdd0f627">xcfa.h</a><li>XCfa_GetActiveSize()
: <a class="el" href="xcfa_8h.html#a11033dd33aa2ea4e272c8f478db9fc2">xcfa.h</a>, <a class="el" href="xcfa_8c.html#a11033dd33aa2ea4e272c8f478db9fc2">xcfa.c</a><li>XCfa_GetBayerPhase()
: <a class="el" href="xcfa_8h.html#2456dd20b52e21211b6fb8ca071d24b4">xcfa.h</a>, <a class="el" href="xcfa_8c.html#2456dd20b52e21211b6fb8ca071d24b4">xcfa.c</a><li>XCfa_GetDbgFrameCount()
: <a class="el" href="xcfa_8h.html#b5c5f6192e717b7cabca4900d34ea1a6">xcfa.h</a>, <a class="el" href="xcfa_8c.html#b5c5f6192e717b7cabca4900d34ea1a6">xcfa.c</a><li>XCfa_GetDbgLineCount()
: <a class="el" href="xcfa_8h.html#c3d959e0e75b1b6d6110a2413a80dd2d">xcfa.h</a>, <a class="el" href="xcfa_8c.html#c3d959e0e75b1b6d6110a2413a80dd2d">xcfa.c</a><li>XCfa_GetDbgPixelCount()
: <a class="el" href="xcfa_8h.html#d452cec853f944bbb0ad8af2ed46641e">xcfa.h</a>, <a class="el" href="xcfa_8c.html#d452cec853f944bbb0ad8af2ed46641e">xcfa.c</a><li>XCfa_GetVersion()
: <a class="el" href="xcfa_8h.html#6eda030a6ee721c31fa2c6468379b08a">xcfa.h</a>, <a class="el" href="xcfa_8c.html#6eda030a6ee721c31fa2c6468379b08a">xcfa.c</a><li>XCFA_GRGR_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c065a79b379aa7133d3843cbc2166a168">xcfa.h</a><li>XCFA_H_
: <a class="el" href="xcfa_8h.html#f9231d8984470c426b9007070d6751cd">xcfa.h</a><li>XCFA_HANDLER_ERROR
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55bf47104882efe33db97eecdfbe6732005">xcfa.h</a><li>XCFA_HANDLER_FRAMEDONE
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55b9220bfc80af3333e1c39d5e04990195b">xcfa.h</a><li>XCFA_HANDLER_PROCSTART
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55b4efe200ce2b9d09476b88ac9c13ca34c">xcfa.h</a><li>XCFA_HSIZE_FIRST
: <a class="el" href="xcfa_8h.html#d6f341a462f862b857b034ce61c1d210">xcfa.h</a><li>XCFA_HSIZE_LAST
: <a class="el" href="xcfa_8h.html#813c1f3adb7beeb8803fe34c75bdc290">xcfa.h</a><li>XCFA_HW_H_
: <a class="el" href="xcfa__hw_8h.html#6c494e6335ec56070f1dd59e71595cc6">xcfa_hw.h</a><li>XCFA_IER_OFFSET
: <a class="el" href="xcfa__hw_8h.html#2734c562f6e8534a72dec40f2224f5e5">xcfa_hw.h</a><li>XCfa_In32
: <a class="el" href="xcfa__hw_8h.html#5f14315e0e82f6b1f3622d9d8fef215e">xcfa_hw.h</a><li>XCfa_IntrClear
: <a class="el" href="xcfa_8h.html#b39759339350709559d1bcb38992d3d2">xcfa.h</a><li>XCfa_IntrDisable
: <a class="el" href="xcfa_8h.html#75c9f065af86813e926a9c30fbb68a0d">xcfa.h</a><li>XCfa_IntrEnable
: <a class="el" href="xcfa_8h.html#61ae031af69dab398bdf4a5488b289d8">xcfa.h</a><li>XCfa_IntrGetPending
: <a class="el" href="xcfa_8h.html#1c5bf382084b875e14b4c61d2c59555c">xcfa.h</a><li>XCfa_IntrHandler()
: <a class="el" href="xcfa__intr_8c.html#d87f5a62c5e92e497cdcb08527a3b093">xcfa_intr.c</a>, <a class="el" href="xcfa_8h.html#d87f5a62c5e92e497cdcb08527a3b093">xcfa.h</a><li>XCFA_IRQ_EN_OFFSET
: <a class="el" href="xcfa__hw_8h.html#23947952ab4e31e2ef2603afc003ac52">xcfa_hw.h</a><li>XCfa_IsDbgByPassEnabled()
: <a class="el" href="xcfa_8h.html#20b43ecec565a3e404cf16368142775b">xcfa.h</a>, <a class="el" href="xcfa_8c.html#20b43ecec565a3e404cf16368142775b">xcfa.c</a><li>XCfa_IsDbgTestPatternEnabled()
: <a class="el" href="xcfa_8h.html#320714714f0771a74ae788d77db9c89c">xcfa.h</a>, <a class="el" href="xcfa_8c.html#320714714f0771a74ae788d77db9c89c">xcfa.c</a><li>XCFA_ISR_OFFSET
: <a class="el" href="xcfa__hw_8h.html#bce5249fc459fa3df753885f2416f1ae">xcfa_hw.h</a><li>XCFA_IXR_ALLINTR_MASK
: <a class="el" href="xcfa__hw_8h.html#abcd0d0167393dabda2ff1878a8ada87">xcfa_hw.h</a><li>XCFA_IXR_EOF_MASK
: <a class="el" href="xcfa__hw_8h.html#2bb47d2b88e91c2eaec410b1c0d6131a">xcfa_hw.h</a><li>XCFA_IXR_PROCS_STARTED_MASK
: <a class="el" href="xcfa__hw_8h.html#d5f33303d4fd2312315748387d567165">xcfa_hw.h</a><li>XCFA_IXR_SE_MASK
: <a class="el" href="xcfa__hw_8h.html#c35a2d626f25f023e1f333fabea01abf">xcfa_hw.h</a><li>XCfa_LookupConfig()
: <a class="el" href="xcfa__sinit_8c.html#a66ae38886661dd25bc5b5831a32fa11">xcfa_sinit.c</a>, <a class="el" href="xcfa_8h.html#a66ae38886661dd25bc5b5831a32fa11">xcfa.h</a><li>XCfa_Out32
: <a class="el" href="xcfa__hw_8h.html#1dc6620554f7e2441ce8e5cdf2f20fea">xcfa_hw.h</a><li>XCfa_ReadReg
: <a class="el" href="xcfa__hw_8h.html#09d781729f1b6207f4bade195c0b10f7">xcfa_hw.h</a><li>XCfa_RegUpdateDisable
: <a class="el" href="xcfa_8h.html#04ac5dc2b4b371908754f78b480d0fe3">xcfa.h</a><li>XCfa_RegUpdateEnable
: <a class="el" href="xcfa_8h.html#9b61463553317fbf13888f08e891badd">xcfa.h</a><li>XCfa_Reset
: <a class="el" href="xcfa_8h.html#b286a6fbb3082e5421fe490a15065986">xcfa.h</a><li>XCFA_RGRG_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c1344f0701043b93a31bbd3bcb2dfa220">xcfa.h</a><li>XCfa_SelfTest()
: <a class="el" href="xcfa__selftest_8c.html#a5f5c003a9010f557e2f770ebcc8e19c">xcfa_selftest.c</a>, <a class="el" href="xcfa_8h.html#a5f5c003a9010f557e2f770ebcc8e19c">xcfa.h</a><li>XCfa_SetActiveSize()
: <a class="el" href="xcfa_8h.html#ee423f2591247f27520ff2ed16bb566f">xcfa.h</a>, <a class="el" href="xcfa_8c.html#ee423f2591247f27520ff2ed16bb566f">xcfa.c</a><li>XCfa_SetBayerPhase()
: <a class="el" href="xcfa_8h.html#f271da6a9bacbc9c1c2167be036b9136">xcfa.h</a>, <a class="el" href="xcfa_8c.html#f271da6a9bacbc9c1c2167be036b9136">xcfa.c</a><li>XCfa_SetCallBack()
: <a class="el" href="xcfa_8h.html#befbc56c01d23f8d80c896e8664eb7ab">xcfa.h</a><li>XCfa_Setup()
: <a class="el" href="xcfa_8h.html#37662371560e8ef83e5c22c6bc1f8252">xcfa.h</a>, <a class="el" href="xcfa_8c.html#37662371560e8ef83e5c22c6bc1f8252">xcfa.c</a><li>XCfa_Start
: <a class="el" href="xcfa_8h.html#b8efb3eda668c7a930c444095ac03d6d">xcfa.h</a><li>XCFA_STATUS_OFFSET
: <a class="el" href="xcfa__hw_8h.html#6a03a0f7308c710638a5d900241d4b86">xcfa_hw.h</a><li>XCfa_StatusGetPending
: <a class="el" href="xcfa_8h.html#668f56e5a0aa0da629730a3b081dc6bb">xcfa.h</a><li>XCfa_Stop
: <a class="el" href="xcfa_8h.html#f9a56f90dd662dc6f5262da59e2a28de">xcfa.h</a><li>XCfa_SyncReset
: <a class="el" href="xcfa_8h.html#22ae9e4eacd467403d3cb7abdc762171">xcfa.h</a><li>XCFA_SYSDEBUG0_OFFSET
: <a class="el" href="xcfa__hw_8h.html#564e3a682d55de489e6449ef31e77eed">xcfa_hw.h</a><li>XCFA_SYSDEBUG1_OFFSET
: <a class="el" href="xcfa__hw_8h.html#e2c209e6ccce80bb192d278ce0ee0735">xcfa_hw.h</a><li>XCFA_SYSDEBUG2_OFFSET
: <a class="el" href="xcfa__hw_8h.html#71947f936b226372ebc3acd488d2e2f4">xcfa_hw.h</a><li>XCFA_VER_INTERNAL_SHIFT
: <a class="el" href="xcfa__hw_8h.html#a18f09a6ea9e4de5bc7014b5e0cf53ba">xcfa_hw.h</a><li>XCFA_VER_MAJOR_MASK
: <a class="el" href="xcfa__hw_8h.html#86303235b47d2b7a79b62d20b1a6309b">xcfa_hw.h</a><li>XCFA_VER_MAJOR_SHIFT
: <a class="el" href="xcfa__hw_8h.html#c6dbb808a3c498ae521fcb104d455414">xcfa_hw.h</a><li>XCFA_VER_MINOR_MASK
: <a class="el" href="xcfa__hw_8h.html#75b065f5de74da89fcbea5a066f505bd">xcfa_hw.h</a><li>XCFA_VER_MINOR_SHIFT
: <a class="el" href="xcfa__hw_8h.html#5a27ee494af96b73167088531aeb91d7">xcfa_hw.h</a><li>XCFA_VER_PID_MASK
: <a class="el" href="xcfa__hw_8h.html#c443cbb93bd4207b88088409ace33ea2">xcfa_hw.h</a><li>XCFA_VER_REV_MASK
: <a class="el" href="xcfa__hw_8h.html#9ed29dd0b26a878bac00abf45da4ba66">xcfa_hw.h</a><li>XCFA_VER_REV_NUM_MASK
: <a class="el" href="xcfa__hw_8h.html#88a105b7c3a3e5382245f5ff2f143f7c">xcfa_hw.h</a><li>XCFA_VER_REV_SHIFT
: <a class="el" href="xcfa__hw_8h.html#dc026cdbc825728fade6ebd643441752">xcfa_hw.h</a><li>XCFA_VERSION_OFFSET
: <a class="el" href="xcfa__hw_8h.html#447b6c271d6a3a47b52349cdabcfdbb2">xcfa_hw.h</a><li>XCFA_VSIZE_FIRST
: <a class="el" href="xcfa_8h.html#f5f6145f9b4bfb90cbe775e79985f564">xcfa.h</a><li>XCFA_VSIZE_LAST
: <a class="el" href="xcfa_8h.html#e1c5feb95ec6692242d5effdd1e8fef4">xcfa.h</a><li>XCfa_WriteReg
: <a class="el" href="xcfa__hw_8h.html#2c38538d92baf9193afd133dec3aad5b">xcfa_hw.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,131 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li id="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_x"><span>x</span></a></li>
</ul>
</div>
<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>CFA_ACTIVE_SIZE
: <a class="el" href="xcfa__hw_8h.html#76f3333a17794a8f6c7d32f6f336420f">xcfa_hw.h</a><li>CFA_BAYER_PHASE
: <a class="el" href="xcfa__hw_8h.html#afec81a641d4e1aaf96b00addd10b7a5">xcfa_hw.h</a><li>CFA_CONTROL
: <a class="el" href="xcfa__hw_8h.html#628847f0b049f8eef5f78ec69b87401d">xcfa_hw.h</a><li>CFA_CTL_CS_MASK
: <a class="el" href="xcfa__hw_8h.html#3b8a014394724a8362e4e7d978243ae7">xcfa_hw.h</a><li>CFA_CTL_EN_MASK
: <a class="el" href="xcfa__hw_8h.html#06eff2324518ce933d36ce18ae6aedac">xcfa_hw.h</a><li>CFA_CTL_RUE_MASK
: <a class="el" href="xcfa__hw_8h.html#e6dd30d83c23e580f14d6a14d74f7dd6">xcfa_hw.h</a><li>CFA_ERROR
: <a class="el" href="xcfa__hw_8h.html#4cbb589607d51146541d36721ae7e4b2">xcfa_hw.h</a><li>CFA_In32
: <a class="el" href="xcfa__hw_8h.html#53bd8238994e13941da7c5a94977b58e">xcfa_hw.h</a><li>CFA_IRQ_EN
: <a class="el" href="xcfa__hw_8h.html#b307f0e6114ad91f50fb52ea4e8d9c78">xcfa_hw.h</a><li>CFA_Out32
: <a class="el" href="xcfa__hw_8h.html#d76c4b22403a8cfadbbbc07516651fa7">xcfa_hw.h</a><li>CFA_ReadReg
: <a class="el" href="xcfa__hw_8h.html#6f605800af5c2fda1c6bc1934aa9c5d0">xcfa_hw.h</a><li>CFA_RST_AUTORESET
: <a class="el" href="xcfa__hw_8h.html#1a4aa2dd71ae3a74a8315d6233bfa07f">xcfa_hw.h</a><li>CFA_RST_RESET
: <a class="el" href="xcfa__hw_8h.html#b54e26b7000b5238c8b8ec7f977a3804">xcfa_hw.h</a><li>CFA_STATUS
: <a class="el" href="xcfa__hw_8h.html#d9cbb44cb6dd9712002b313733b187a3">xcfa_hw.h</a><li>CFA_SYSDEBUG0
: <a class="el" href="xcfa__hw_8h.html#8351943a3acc4c449815090924a3a1b8">xcfa_hw.h</a><li>CFA_SYSDEBUG1
: <a class="el" href="xcfa__hw_8h.html#9f4639434268bd9f0190f23028aaec56">xcfa_hw.h</a><li>CFA_SYSDEBUG2
: <a class="el" href="xcfa__hw_8h.html#68e3c9de286404ff5e4b419cb87f092e">xcfa_hw.h</a><li>CFA_VERSION
: <a class="el" href="xcfa__hw_8h.html#3a37048ab3b419abe698c02b16ff534a">xcfa_hw.h</a><li>CFA_WriteReg
: <a class="el" href="xcfa__hw_8h.html#2b43872635233ce3d342a652b3221972">xcfa_hw.h</a></ul>
<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
<li>XCFA_8_BIT_MASK
: <a class="el" href="xcfa__hw_8h.html#6cf683d0f92ddf32cebc97eef4d1b38a">xcfa_hw.h</a><li>XCFA_ACTIVE_SIZE_OFFSET
: <a class="el" href="xcfa__hw_8h.html#62e5eb41f86025221effbc4816aa377a">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_LINE_MASK
: <a class="el" href="xcfa__hw_8h.html#216e31e0614c640956a8d4f00796b366">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_LINE_SHIFT
: <a class="el" href="xcfa__hw_8h.html#ac36086c6e79a0e3e564832e2c478e19">xcfa_hw.h</a><li>XCFA_ACTSIZE_NUM_PIXEL_MASK
: <a class="el" href="xcfa__hw_8h.html#8341437781b319eef5f562fb8947205e">xcfa_hw.h</a><li>XCFA_BAYER_PHASE_MASK
: <a class="el" href="xcfa__hw_8h.html#64855c0d80b23e4a2adb7264b4748278">xcfa_hw.h</a><li>XCFA_BAYER_PHASE_OFFSET
: <a class="el" href="xcfa__hw_8h.html#280a46a5bd6727131473f5c42e266d10">xcfa_hw.h</a><li>XCFA_CONTROL_OFFSET
: <a class="el" href="xcfa__hw_8h.html#4d9258611512a367a6409eb9680b281f">xcfa_hw.h</a><li>XCFA_CTL_AUTORESET_MASK
: <a class="el" href="xcfa__hw_8h.html#55ebebcb836c04b9d3a0aee7ab334d6d">xcfa_hw.h</a><li>XCFA_CTL_BPE_MASK
: <a class="el" href="xcfa__hw_8h.html#fd6df87f12b63f52fae813b1e53f2587">xcfa_hw.h</a><li>XCFA_CTL_RESET_MASK
: <a class="el" href="xcfa__hw_8h.html#51983418ed95f2d8a65fc556ed0ce954">xcfa_hw.h</a><li>XCFA_CTL_RUE_MASK
: <a class="el" href="xcfa__hw_8h.html#74f3589a4e236b3b275124108b596af4">xcfa_hw.h</a><li>XCFA_CTL_SW_EN_MASK
: <a class="el" href="xcfa__hw_8h.html#1d888e578e3393cc25588dddd0d9c892">xcfa_hw.h</a><li>XCFA_CTL_TPE_MASK
: <a class="el" href="xcfa__hw_8h.html#b68d6c41173d75844aee72130216487f">xcfa_hw.h</a><li>XCfa_Disable
: <a class="el" href="xcfa_8h.html#1e39b3456a5403d5404bd58fd04142e3">xcfa.h</a><li>XCfa_Enable
: <a class="el" href="xcfa_8h.html#e33e6a6cfea43dce621494607950f246">xcfa.h</a><li>XCFA_ERR_EOL_EARLY_MASK
: <a class="el" href="xcfa__hw_8h.html#b5d67280595abb23454d4da9db10dbd8">xcfa_hw.h</a><li>XCFA_ERR_EOL_LATE_MASK
: <a class="el" href="xcfa__hw_8h.html#2211bd2c6e66c6e2cfcae8669fd1830e">xcfa_hw.h</a><li>XCFA_ERR_SOF_EARLY_MASK
: <a class="el" href="xcfa__hw_8h.html#ebeb237b1c390f1d4d1b6682e92c514e">xcfa_hw.h</a><li>XCFA_ERR_SOF_LATE_MASK
: <a class="el" href="xcfa__hw_8h.html#821de45c83939bfc204801dcb44399b3">xcfa_hw.h</a><li>XCFA_ERROR_OFFSET
: <a class="el" href="xcfa__hw_8h.html#86f3c4570bfc5a3f9bfcae08d2c139cb">xcfa_hw.h</a><li>XCFA_H_
: <a class="el" href="xcfa_8h.html#f9231d8984470c426b9007070d6751cd">xcfa.h</a><li>XCFA_HSIZE_FIRST
: <a class="el" href="xcfa_8h.html#d6f341a462f862b857b034ce61c1d210">xcfa.h</a><li>XCFA_HSIZE_LAST
: <a class="el" href="xcfa_8h.html#813c1f3adb7beeb8803fe34c75bdc290">xcfa.h</a><li>XCFA_HW_H_
: <a class="el" href="xcfa__hw_8h.html#6c494e6335ec56070f1dd59e71595cc6">xcfa_hw.h</a><li>XCFA_IER_OFFSET
: <a class="el" href="xcfa__hw_8h.html#2734c562f6e8534a72dec40f2224f5e5">xcfa_hw.h</a><li>XCfa_In32
: <a class="el" href="xcfa__hw_8h.html#5f14315e0e82f6b1f3622d9d8fef215e">xcfa_hw.h</a><li>XCfa_IntrClear
: <a class="el" href="xcfa_8h.html#b39759339350709559d1bcb38992d3d2">xcfa.h</a><li>XCfa_IntrDisable
: <a class="el" href="xcfa_8h.html#75c9f065af86813e926a9c30fbb68a0d">xcfa.h</a><li>XCfa_IntrEnable
: <a class="el" href="xcfa_8h.html#61ae031af69dab398bdf4a5488b289d8">xcfa.h</a><li>XCfa_IntrGetPending
: <a class="el" href="xcfa_8h.html#1c5bf382084b875e14b4c61d2c59555c">xcfa.h</a><li>XCFA_IRQ_EN_OFFSET
: <a class="el" href="xcfa__hw_8h.html#23947952ab4e31e2ef2603afc003ac52">xcfa_hw.h</a><li>XCFA_ISR_OFFSET
: <a class="el" href="xcfa__hw_8h.html#bce5249fc459fa3df753885f2416f1ae">xcfa_hw.h</a><li>XCFA_IXR_ALLINTR_MASK
: <a class="el" href="xcfa__hw_8h.html#abcd0d0167393dabda2ff1878a8ada87">xcfa_hw.h</a><li>XCFA_IXR_EOF_MASK
: <a class="el" href="xcfa__hw_8h.html#2bb47d2b88e91c2eaec410b1c0d6131a">xcfa_hw.h</a><li>XCFA_IXR_PROCS_STARTED_MASK
: <a class="el" href="xcfa__hw_8h.html#d5f33303d4fd2312315748387d567165">xcfa_hw.h</a><li>XCFA_IXR_SE_MASK
: <a class="el" href="xcfa__hw_8h.html#c35a2d626f25f023e1f333fabea01abf">xcfa_hw.h</a><li>XCfa_Out32
: <a class="el" href="xcfa__hw_8h.html#1dc6620554f7e2441ce8e5cdf2f20fea">xcfa_hw.h</a><li>XCfa_ReadReg
: <a class="el" href="xcfa__hw_8h.html#09d781729f1b6207f4bade195c0b10f7">xcfa_hw.h</a><li>XCfa_RegUpdateDisable
: <a class="el" href="xcfa_8h.html#04ac5dc2b4b371908754f78b480d0fe3">xcfa.h</a><li>XCfa_RegUpdateEnable
: <a class="el" href="xcfa_8h.html#9b61463553317fbf13888f08e891badd">xcfa.h</a><li>XCfa_Reset
: <a class="el" href="xcfa_8h.html#b286a6fbb3082e5421fe490a15065986">xcfa.h</a><li>XCfa_Start
: <a class="el" href="xcfa_8h.html#b8efb3eda668c7a930c444095ac03d6d">xcfa.h</a><li>XCFA_STATUS_OFFSET
: <a class="el" href="xcfa__hw_8h.html#6a03a0f7308c710638a5d900241d4b86">xcfa_hw.h</a><li>XCfa_StatusGetPending
: <a class="el" href="xcfa_8h.html#668f56e5a0aa0da629730a3b081dc6bb">xcfa.h</a><li>XCfa_Stop
: <a class="el" href="xcfa_8h.html#f9a56f90dd662dc6f5262da59e2a28de">xcfa.h</a><li>XCfa_SyncReset
: <a class="el" href="xcfa_8h.html#22ae9e4eacd467403d3cb7abdc762171">xcfa.h</a><li>XCFA_SYSDEBUG0_OFFSET
: <a class="el" href="xcfa__hw_8h.html#564e3a682d55de489e6449ef31e77eed">xcfa_hw.h</a><li>XCFA_SYSDEBUG1_OFFSET
: <a class="el" href="xcfa__hw_8h.html#e2c209e6ccce80bb192d278ce0ee0735">xcfa_hw.h</a><li>XCFA_SYSDEBUG2_OFFSET
: <a class="el" href="xcfa__hw_8h.html#71947f936b226372ebc3acd488d2e2f4">xcfa_hw.h</a><li>XCFA_VER_INTERNAL_SHIFT
: <a class="el" href="xcfa__hw_8h.html#a18f09a6ea9e4de5bc7014b5e0cf53ba">xcfa_hw.h</a><li>XCFA_VER_MAJOR_MASK
: <a class="el" href="xcfa__hw_8h.html#86303235b47d2b7a79b62d20b1a6309b">xcfa_hw.h</a><li>XCFA_VER_MAJOR_SHIFT
: <a class="el" href="xcfa__hw_8h.html#c6dbb808a3c498ae521fcb104d455414">xcfa_hw.h</a><li>XCFA_VER_MINOR_MASK
: <a class="el" href="xcfa__hw_8h.html#75b065f5de74da89fcbea5a066f505bd">xcfa_hw.h</a><li>XCFA_VER_MINOR_SHIFT
: <a class="el" href="xcfa__hw_8h.html#5a27ee494af96b73167088531aeb91d7">xcfa_hw.h</a><li>XCFA_VER_PID_MASK
: <a class="el" href="xcfa__hw_8h.html#c443cbb93bd4207b88088409ace33ea2">xcfa_hw.h</a><li>XCFA_VER_REV_MASK
: <a class="el" href="xcfa__hw_8h.html#9ed29dd0b26a878bac00abf45da4ba66">xcfa_hw.h</a><li>XCFA_VER_REV_NUM_MASK
: <a class="el" href="xcfa__hw_8h.html#88a105b7c3a3e5382245f5ff2f143f7c">xcfa_hw.h</a><li>XCFA_VER_REV_SHIFT
: <a class="el" href="xcfa__hw_8h.html#dc026cdbc825728fade6ebd643441752">xcfa_hw.h</a><li>XCFA_VERSION_OFFSET
: <a class="el" href="xcfa__hw_8h.html#447b6c271d6a3a47b52349cdabcfdbb2">xcfa_hw.h</a><li>XCFA_VSIZE_FIRST
: <a class="el" href="xcfa_8h.html#f5f6145f9b4bfb90cbe775e79985f564">xcfa.h</a><li>XCFA_VSIZE_LAST
: <a class="el" href="xcfa_8h.html#e1c5feb95ec6692242d5effdd1e8fef4">xcfa.h</a><li>XCfa_WriteReg
: <a class="el" href="xcfa__hw_8h.html#2c38538d92baf9193afd133dec3aad5b">xcfa_hw.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,40 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li id="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>BayerPhaseCombination
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c">xcfa.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,46 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li id="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>XCFA_BGBG_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344cd49bcfa76555d078d8704371d65db911">xcfa.h</a><li>XCFA_GBGB_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c877fcf299fdf12f854fd4836bdd0f627">xcfa.h</a><li>XCFA_GRGR_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c065a79b379aa7133d3843cbc2166a168">xcfa.h</a><li>XCFA_HANDLER_ERROR
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55bf47104882efe33db97eecdfbe6732005">xcfa.h</a><li>XCFA_HANDLER_FRAMEDONE
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55b9220bfc80af3333e1c39d5e04990195b">xcfa.h</a><li>XCFA_HANDLER_PROCSTART
: <a class="el" href="xcfa_8h.html#06fc87d81c62e9abb8790b6e5713c55b4efe200ce2b9d09476b88ac9c13ca34c">xcfa.h</a><li>XCFA_RGRG_COMBINATION
: <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c1344f0701043b93a31bbd3bcb2dfa220">xcfa.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,59 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li id="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>XCfa_CfgInitialize()
: <a class="el" href="xcfa_8h.html#f21a4a9fe167729fd388e53a9ae467d9">xcfa.h</a>, <a class="el" href="xcfa_8c.html#f21a4a9fe167729fd388e53a9ae467d9">xcfa.c</a><li>XCfa_DisableDbgBypass()
: <a class="el" href="xcfa_8h.html#a09e739bf44e6261b9040b1c94fa4a09">xcfa.h</a>, <a class="el" href="xcfa_8c.html#a09e739bf44e6261b9040b1c94fa4a09">xcfa.c</a><li>XCfa_DisableDbgTestPattern()
: <a class="el" href="xcfa_8h.html#24ee7bc8ecaa7b4a2ade87fe249dd991">xcfa.h</a>, <a class="el" href="xcfa_8c.html#24ee7bc8ecaa7b4a2ade87fe249dd991">xcfa.c</a><li>XCfa_EnableDbgByPass()
: <a class="el" href="xcfa_8h.html#2950494fe006bb716d867057fa40fe84">xcfa.h</a>, <a class="el" href="xcfa_8c.html#2950494fe006bb716d867057fa40fe84">xcfa.c</a><li>XCfa_EnableDbgTestPattern()
: <a class="el" href="xcfa_8h.html#e26d790d91c21b1af050608d074e1d14">xcfa.h</a>, <a class="el" href="xcfa_8c.html#e26d790d91c21b1af050608d074e1d14">xcfa.c</a><li>XCfa_GetActiveSize()
: <a class="el" href="xcfa_8h.html#a11033dd33aa2ea4e272c8f478db9fc2">xcfa.h</a>, <a class="el" href="xcfa_8c.html#a11033dd33aa2ea4e272c8f478db9fc2">xcfa.c</a><li>XCfa_GetBayerPhase()
: <a class="el" href="xcfa_8h.html#2456dd20b52e21211b6fb8ca071d24b4">xcfa.h</a>, <a class="el" href="xcfa_8c.html#2456dd20b52e21211b6fb8ca071d24b4">xcfa.c</a><li>XCfa_GetDbgFrameCount()
: <a class="el" href="xcfa_8h.html#b5c5f6192e717b7cabca4900d34ea1a6">xcfa.h</a>, <a class="el" href="xcfa_8c.html#b5c5f6192e717b7cabca4900d34ea1a6">xcfa.c</a><li>XCfa_GetDbgLineCount()
: <a class="el" href="xcfa_8h.html#c3d959e0e75b1b6d6110a2413a80dd2d">xcfa.h</a>, <a class="el" href="xcfa_8c.html#c3d959e0e75b1b6d6110a2413a80dd2d">xcfa.c</a><li>XCfa_GetDbgPixelCount()
: <a class="el" href="xcfa_8h.html#d452cec853f944bbb0ad8af2ed46641e">xcfa.h</a>, <a class="el" href="xcfa_8c.html#d452cec853f944bbb0ad8af2ed46641e">xcfa.c</a><li>XCfa_GetVersion()
: <a class="el" href="xcfa_8h.html#6eda030a6ee721c31fa2c6468379b08a">xcfa.h</a>, <a class="el" href="xcfa_8c.html#6eda030a6ee721c31fa2c6468379b08a">xcfa.c</a><li>XCfa_IntrHandler()
: <a class="el" href="xcfa__intr_8c.html#d87f5a62c5e92e497cdcb08527a3b093">xcfa_intr.c</a>, <a class="el" href="xcfa_8h.html#d87f5a62c5e92e497cdcb08527a3b093">xcfa.h</a><li>XCfa_IsDbgByPassEnabled()
: <a class="el" href="xcfa_8h.html#20b43ecec565a3e404cf16368142775b">xcfa.h</a>, <a class="el" href="xcfa_8c.html#20b43ecec565a3e404cf16368142775b">xcfa.c</a><li>XCfa_IsDbgTestPatternEnabled()
: <a class="el" href="xcfa_8h.html#320714714f0771a74ae788d77db9c89c">xcfa.h</a>, <a class="el" href="xcfa_8c.html#320714714f0771a74ae788d77db9c89c">xcfa.c</a><li>XCfa_LookupConfig()
: <a class="el" href="xcfa__sinit_8c.html#a66ae38886661dd25bc5b5831a32fa11">xcfa_sinit.c</a>, <a class="el" href="xcfa_8h.html#a66ae38886661dd25bc5b5831a32fa11">xcfa.h</a><li>XCfa_SelfTest()
: <a class="el" href="xcfa__selftest_8c.html#a5f5c003a9010f557e2f770ebcc8e19c">xcfa_selftest.c</a>, <a class="el" href="xcfa_8h.html#a5f5c003a9010f557e2f770ebcc8e19c">xcfa.h</a><li>XCfa_SetActiveSize()
: <a class="el" href="xcfa_8h.html#ee423f2591247f27520ff2ed16bb566f">xcfa.h</a>, <a class="el" href="xcfa_8c.html#ee423f2591247f27520ff2ed16bb566f">xcfa.c</a><li>XCfa_SetBayerPhase()
: <a class="el" href="xcfa_8h.html#f271da6a9bacbc9c1c2167be036b9136">xcfa.h</a>, <a class="el" href="xcfa_8c.html#f271da6a9bacbc9c1c2167be036b9136">xcfa.c</a><li>XCfa_SetCallBack()
: <a class="el" href="xcfa_8h.html#befbc56c01d23f8d80c896e8664eb7ab">xcfa.h</a><li>XCfa_Setup()
: <a class="el" href="xcfa_8h.html#37662371560e8ef83e5c22c6bc1f8252">xcfa.h</a>, <a class="el" href="xcfa_8c.html#37662371560e8ef83e5c22c6bc1f8252">xcfa.c</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,41 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li id="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>XCfa_CallBack
: <a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">xcfa.h</a><li>XCfa_ErrorCallBack
: <a class="el" href="xcfa_8h.html#d93600080025d0a2593f3a25f39eb8a2">xcfa.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,40 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Class Members
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li id="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
&nbsp;
<p>
<ul>
<li>XCfa_ConfigTable
: <a class="el" href="xcfa__g_8c.html#41fea36b791c10aa93e26f29cf72da68">xcfa_g.c</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,90 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Main Page
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1></h1>
<p>
This header file contains identifiers and register-level core functions (or macros), range macros, structure typedefs that can be used to access the Xilinx Color Filter Array Interpolation (CFA) core.<p>
The Color Filter Array Interpolation core reconstructs a color image from an RGB or CMY Bayer filtered sensor using a 5x5 interpolation aperture. The core is capable of a maximum resolution of 7680 columns by 7680 rows with 8, 10, or 12 bits per pixel and supports the bandwidth necessary for High-definition (1080p60) resolutions in all Xilinx FPGA device families. Higher resolutions can be supported in Xilinx high-performance device families.<p>
<b>Initialization &amp; Configuration</b><p>
The device driver enables higher layer software (e.g., an application) to communicate to the CFA core.<p>
<a class="el" href="xcfa_8c.html#f21a4a9fe167729fd388e53a9ae467d9">XCfa_CfgInitialize()</a> API is used to initialize the CFA core. The user needs to first call the <a class="el" href="xcfa_8h.html#a66ae38886661dd25bc5b5831a32fa11">XCfa_LookupConfig()</a> API which returns the Configuration structure pointer which is passed as a parameter to the <a class="el" href="xcfa_8c.html#f21a4a9fe167729fd388e53a9ae467d9">XCfa_CfgInitialize()</a> API.<p>
<b> Interrupts </b><p>
The driver provides an interrupt handler XCfa_IntrHandler for handling the interrupt from the CFA core. The users of this driver have to register this handler with the interrupt system and provide the callback functions by using XCfa_SetCallBack API.<p>
<b> Virtual Memory </b><p>
This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.<p>
<b> Threads </b><p>
This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.<p>
<b> Asserts </b><p>
Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.<p>
<b> Building the driver </b><p>
The <a class="el" href="struct_x_cfa.html">XCfa</a> driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------ -------- ----------------------------------------------
1.00a xd 08/05/08 First release
3.00a gz 10/22/10 Updated for CFA V3.0
4.00a rc 09/11/11 Updated for CFA v4.0
5.00a se 12/01/11 Updated for CFA v5.0, replaced xio.h with xil_io.h.
6.0 adk 19/12/13 Updated as per the New Tcl API's.
7.0 adk 01/07/14 Changed the file name from cfa.h to <a class="el" href="xcfa_8h.html">xcfa.h</a>
Defined following handler types as enum
XCFA_HANDLER_PROCSTART, XCFA_HANDLER_FRAMEDONE,
XCFA_HANDLER_ERROR.</pre><p>
<pre> Defined the BayerPhaseCombination enum
for bayerphase combinations.</pre><p>
<pre> Defined the following macros:
XCFA_VSIZE_FIRST, XCFA_VSIZE_LAST
XCFA_HSIZE_FIRST, XCFA_HSIZE_LAST
XCfa_Start, XCfa_Stop, XCfa_IntrEnable,
XCfa_IntrDisable, XCfa_StatusGetPending,
XCfa_IntrGetPending, XCfa_IntrClear.</pre><p>
<pre> Added the following function macros:
XCfa_Enable, XCfa_Disable, XCfa_Reset, XCfa_SyncReset,
XCfa_RegUpdateEnable, XCfa_RegUpdateDisable.</pre><p>
<pre> Removed the following functional macros:
CFA_Enable, CFA_Disable, CFA_Reset, CFA_FSyncReset,
XCFA_RegUpdateEnable, XCFA_RegUpdateDisable,
CFA_ClearReset, CFA_ClearStatus.</pre><p>
<pre> Defined the following type definitions:
<a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> and <a class="el" href="struct_x_cfa.html">XCfa</a> structures.
XCfa_CallBack and XCfa_ErrorCallBack.</pre><p>
<pre> Changes in <a class="el" href="xcfa__hw_8h.html">xcfa_hw.h</a>:
Added the register offsets and bit masks for the
registers and added backward compatibility for macros.</pre><p>
<pre> Changes in <a class="el" href="xcfa_8c.html">xcfa.c</a>:
Renamed this file as below:
cfa.c -&gt; <a class="el" href="xcfa_8c.html">xcfa.c</a>
Implemented the following functions:
XCfa_CfgInitialize, XCfa_Setup, XCfa_GetVersion,
XCfa_EnableDbgByPass, XCfa_IsDbgByPassEnabled,
XCfa_DisableDbgBypass, XCfa_EnableDbgTestPattern,
XCfa_IsDbgTestPatternEnabled,
XCfa_DisableDbgTestPattern, XCfa_GetDbgFrameCount,
XCfa_GetDbgLineCount, XCfa_GetDbgPixelCount,
XCfa_SetActiveSize, XCfa_GetActiveSize,
XCfa_SetBayerPhase, XCfa_GetBayerPhase,
StubCallBack, StubErrCallBack.</pre><p>
<pre> Changes in <a class="el" href="xcfa__intr_8c.html">xcfa_intr.c</a>:
Implemented the following functions:
XCfa_IntrHandler, XCfa_SetCallBack.</pre><p>
<pre> Changes in <a class="el" href="xcfa__selftest_8c.html">xcfa_selftest.c</a>:
Implemented XCfa_SelfTest function.</pre><p>
<pre> Changes in <a class="el" href="xcfa__sinit_8c.html">xcfa_sinit.c</a> :
Implemented XCfa_LookupConfig function.
</pre> Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,35 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Member List
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XCfa Member List</h1>This is the complete list of members for <a class="el" href="struct_x_cfa.html">XCfa</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#3b7119572a7467a518f039bae5aff2e8">Config</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#964a82ae743e41cac0f4a60132e27bc1">ErrCallBack</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#ea775a832ce21cf22f5be73dd6810d27">ErrRef</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#b1487cfca4b657876558b3e346021888">FrameDoneCallBack</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#baa1283bb2b192e0386980da64a428fe">FrameDoneRef</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#bd45e904c2d6011b48d6d415da8e5ed6">HSize</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#083db09d4f7da1dfb378308138ccb71a">IsReady</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#7c14d64bbce7bd370c18d4aaba0dda01">ProcStartCallBack</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#35f5625707d281768891e088e6a3dd6e">ProcStartRef</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa.html#882a5065e2842a2bca1f38e1f4fa81d3">VSize</a></td><td><a class="el" href="struct_x_cfa.html">XCfa</a></td><td></td></tr>
</table>Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,206 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
XCfa Struct Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XCfa Struct Reference</h1><!-- doxytag: class="XCfa" --><code>#include &lt;xcfa.h&gt;</code>
<p>
<a href="struct_x_cfa-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="struct_x_cfa.html">XCfa</a> instance data structure. A pointer to an instance data structure is passed around by functions to refer to a specific instance.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#3b7119572a7467a518f039bae5aff2e8">Config</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#083db09d4f7da1dfb378308138ccb71a">IsReady</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#bd45e904c2d6011b48d6d415da8e5ed6">HSize</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#882a5065e2842a2bca1f38e1f4fa81d3">VSize</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">XCfa_CallBack</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#7c14d64bbce7bd370c18d4aaba0dda01">ProcStartCallBack</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#35f5625707d281768891e088e6a3dd6e">ProcStartRef</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">XCfa_CallBack</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#b1487cfca4b657876558b3e346021888">FrameDoneCallBack</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#baa1283bb2b192e0386980da64a428fe">FrameDoneRef</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="xcfa_8h.html#d93600080025d0a2593f3a25f39eb8a2">XCfa_ErrorCallBack</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#964a82ae743e41cac0f4a60132e27bc1">ErrCallBack</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa.html#ea775a832ce21cf22f5be73dd6810d27">ErrRef</a></td></tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="3b7119572a7467a518f039bae5aff2e8"></a><!-- doxytag: member="XCfa::Config" ref="3b7119572a7467a518f039bae5aff2e8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> <a class="el" href="struct_x_cfa.html#3b7119572a7467a518f039bae5aff2e8">XCfa::Config</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Hardware configuration
</div>
</div><p>
<a class="anchor" name="964a82ae743e41cac0f4a60132e27bc1"></a><!-- doxytag: member="XCfa::ErrCallBack" ref="964a82ae743e41cac0f4a60132e27bc1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xcfa_8h.html#d93600080025d0a2593f3a25f39eb8a2">XCfa_ErrorCallBack</a> <a class="el" href="struct_x_cfa.html#964a82ae743e41cac0f4a60132e27bc1">XCfa::ErrCallBack</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Callback for error interrupt
</div>
</div><p>
<a class="anchor" name="ea775a832ce21cf22f5be73dd6810d27"></a><!-- doxytag: member="XCfa::ErrRef" ref="ea775a832ce21cf22f5be73dd6810d27" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_cfa.html#ea775a832ce21cf22f5be73dd6810d27">XCfa::ErrRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
To be passed to the error interrupt callback
</div>
</div><p>
<a class="anchor" name="b1487cfca4b657876558b3e346021888"></a><!-- doxytag: member="XCfa::FrameDoneCallBack" ref="b1487cfca4b657876558b3e346021888" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">XCfa_CallBack</a> <a class="el" href="struct_x_cfa.html#b1487cfca4b657876558b3e346021888">XCfa::FrameDoneCallBack</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Callback for frame done interrupt
</div>
</div><p>
<a class="anchor" name="baa1283bb2b192e0386980da64a428fe"></a><!-- doxytag: member="XCfa::FrameDoneRef" ref="baa1283bb2b192e0386980da64a428fe" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_cfa.html#baa1283bb2b192e0386980da64a428fe">XCfa::FrameDoneRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
To be passed to the frame done interrupt callback
</div>
</div><p>
<a class="anchor" name="bd45e904c2d6011b48d6d415da8e5ed6"></a><!-- doxytag: member="XCfa::HSize" ref="bd45e904c2d6011b48d6d415da8e5ed6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_cfa.html#bd45e904c2d6011b48d6d415da8e5ed6">XCfa::HSize</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Active video horizontal size
</div>
</div><p>
<a class="anchor" name="083db09d4f7da1dfb378308138ccb71a"></a><!-- doxytag: member="XCfa::IsReady" ref="083db09d4f7da1dfb378308138ccb71a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa.html#083db09d4f7da1dfb378308138ccb71a">XCfa::IsReady</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Core instance is initialized
</div>
</div><p>
<a class="anchor" name="7c14d64bbce7bd370c18d4aaba0dda01"></a><!-- doxytag: member="XCfa::ProcStartCallBack" ref="7c14d64bbce7bd370c18d4aaba0dda01" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="xcfa_8h.html#d442a0e0fea25f28031d0075d5365457">XCfa_CallBack</a> <a class="el" href="struct_x_cfa.html#7c14d64bbce7bd370c18d4aaba0dda01">XCfa::ProcStartCallBack</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Callback for processing start interrupt
</div>
</div><p>
<a class="anchor" name="35f5625707d281768891e088e6a3dd6e"></a><!-- doxytag: member="XCfa::ProcStartRef" ref="35f5625707d281768891e088e6a3dd6e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_x_cfa.html#35f5625707d281768891e088e6a3dd6e">XCfa::ProcStartRef</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
To be passed to the process start interrupt callback
</div>
</div><p>
<a class="anchor" name="882a5065e2842a2bca1f38e1f4fa81d3"></a><!-- doxytag: member="XCfa::VSize" ref="882a5065e2842a2bca1f38e1f4fa81d3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_cfa.html#882a5065e2842a2bca1f38e1f4fa81d3">XCfa::VSize</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Active video vertical size
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xcfa_8h.html">xcfa.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,38 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
Member List
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XCfa_Config Member List</h1>This is the complete list of members for <a class="el" href="struct_x_cfa___config.html">XCfa_Config</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#c5a229b634347b8b80dd27dd8eb276bb">ActiveColumns</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#23916ff1d5e652388fcab8bb4b550646">ActiveRows</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#63b031c8d1b4b1020d0fc91be4262801">BaseAddress</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#3d2804f5721a8aff50e2d9a8317979b5">BayerPhase</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#6f71f268fccfc472a042201b20c15dc9">DeviceId</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#8003a01eaa5d89f4552c66a006a494e3">FringeTol</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#667105384e23dfa0109054e03ce30099">HasDebug</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#fb0c20c5fd3461e9ad60a9940dfba5ba">HasIntcIf</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#8a043badf3d5d85e9ff3308340f3e772">HorFilt</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#923e29447ce211b6b0bd4e73f2236bef">MasterAxisVideoFormat</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#dead7773f4ec38712f23f9664e029f11">MaxColumns</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#9f10ac0aebde4f98b514db29b3a80ca6">SlaveAxiClkFreqHz</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="struct_x_cfa___config.html#e5be4d320b5c127da08e019dd2ca4bcb">SlaveAxisVideoFormat</a></td><td><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a></td><td></td></tr>
</table>Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,257 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
XCfa_Config Struct Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>XCfa_Config Struct Reference</h1><!-- doxytag: class="XCfa_Config" --><code>#include &lt;xcfa.h&gt;</code>
<p>
<a href="struct_x_cfa___config-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
This typedef contains configuration information for the CFA core. Each CFA core should have a configuration structure associated.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#6f71f268fccfc472a042201b20c15dc9">DeviceId</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#63b031c8d1b4b1020d0fc91be4262801">BaseAddress</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#e5be4d320b5c127da08e019dd2ca4bcb">SlaveAxisVideoFormat</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#923e29447ce211b6b0bd4e73f2236bef">MasterAxisVideoFormat</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u8&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#3d2804f5721a8aff50e2d9a8317979b5">BayerPhase</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#9f10ac0aebde4f98b514db29b3a80ca6">SlaveAxiClkFreqHz</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#23916ff1d5e652388fcab8bb4b550646">ActiveRows</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#c5a229b634347b8b80dd27dd8eb276bb">ActiveColumns</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#dead7773f4ec38712f23f9664e029f11">MaxColumns</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#fb0c20c5fd3461e9ad60a9940dfba5ba">HasIntcIf</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#667105384e23dfa0109054e03ce30099">HasDebug</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#8a043badf3d5d85e9ff3308340f3e772">HorFilt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_x_cfa___config.html#8003a01eaa5d89f4552c66a006a494e3">FringeTol</a></td></tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="c5a229b634347b8b80dd27dd8eb276bb"></a><!-- doxytag: member="XCfa_Config::ActiveColumns" ref="c5a229b634347b8b80dd27dd8eb276bb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#c5a229b634347b8b80dd27dd8eb276bb">XCfa_Config::ActiveColumns</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Active Columns
</div>
</div><p>
<a class="anchor" name="23916ff1d5e652388fcab8bb4b550646"></a><!-- doxytag: member="XCfa_Config::ActiveRows" ref="23916ff1d5e652388fcab8bb4b550646" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#23916ff1d5e652388fcab8bb4b550646">XCfa_Config::ActiveRows</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Active rows
</div>
</div><p>
<a class="anchor" name="63b031c8d1b4b1020d0fc91be4262801"></a><!-- doxytag: member="XCfa_Config::BaseAddress" ref="63b031c8d1b4b1020d0fc91be4262801" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#63b031c8d1b4b1020d0fc91be4262801">XCfa_Config::BaseAddress</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
BaseAddress is the physical base address of the core's registers
</div>
</div><p>
<a class="anchor" name="3d2804f5721a8aff50e2d9a8317979b5"></a><!-- doxytag: member="XCfa_Config::BayerPhase" ref="3d2804f5721a8aff50e2d9a8317979b5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8 <a class="el" href="struct_x_cfa___config.html#3d2804f5721a8aff50e2d9a8317979b5">XCfa_Config::BayerPhase</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Bayer Phase
</div>
</div><p>
<a class="anchor" name="6f71f268fccfc472a042201b20c15dc9"></a><!-- doxytag: member="XCfa_Config::DeviceId" ref="6f71f268fccfc472a042201b20c15dc9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_cfa___config.html#6f71f268fccfc472a042201b20c15dc9">XCfa_Config::DeviceId</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
DeviceId is the unique ID of the core
</div>
</div><p>
<a class="anchor" name="8003a01eaa5d89f4552c66a006a494e3"></a><!-- doxytag: member="XCfa_Config::FringeTol" ref="8003a01eaa5d89f4552c66a006a494e3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#8003a01eaa5d89f4552c66a006a494e3">XCfa_Config::FringeTol</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Fringe Tolerance
</div>
</div><p>
<a class="anchor" name="667105384e23dfa0109054e03ce30099"></a><!-- doxytag: member="XCfa_Config::HasDebug" ref="667105384e23dfa0109054e03ce30099" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_cfa___config.html#667105384e23dfa0109054e03ce30099">XCfa_Config::HasDebug</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Has Debug GUI specified
</div>
</div><p>
<a class="anchor" name="fb0c20c5fd3461e9ad60a9940dfba5ba"></a><!-- doxytag: member="XCfa_Config::HasIntcIf" ref="fb0c20c5fd3461e9ad60a9940dfba5ba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_x_cfa___config.html#fb0c20c5fd3461e9ad60a9940dfba5ba">XCfa_Config::HasIntcIf</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Has Interrupt Control
</div>
</div><p>
<a class="anchor" name="8a043badf3d5d85e9ff3308340f3e772"></a><!-- doxytag: member="XCfa_Config::HorFilt" ref="8a043badf3d5d85e9ff3308340f3e772" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#8a043badf3d5d85e9ff3308340f3e772">XCfa_Config::HorFilt</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Optional Horizontal Filter
</div>
</div><p>
<a class="anchor" name="923e29447ce211b6b0bd4e73f2236bef"></a><!-- doxytag: member="XCfa_Config::MasterAxisVideoFormat" ref="923e29447ce211b6b0bd4e73f2236bef" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#923e29447ce211b6b0bd4e73f2236bef">XCfa_Config::MasterAxisVideoFormat</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Master Axis Video Format
</div>
</div><p>
<a class="anchor" name="dead7773f4ec38712f23f9664e029f11"></a><!-- doxytag: member="XCfa_Config::MaxColumns" ref="dead7773f4ec38712f23f9664e029f11" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#dead7773f4ec38712f23f9664e029f11">XCfa_Config::MaxColumns</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Maximum Columns
</div>
</div><p>
<a class="anchor" name="9f10ac0aebde4f98b514db29b3a80ca6"></a><!-- doxytag: member="XCfa_Config::SlaveAxiClkFreqHz" ref="9f10ac0aebde4f98b514db29b3a80ca6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#9f10ac0aebde4f98b514db29b3a80ca6">XCfa_Config::SlaveAxiClkFreqHz</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Slave Clock Frequency
</div>
</div><p>
<a class="anchor" name="e5be4d320b5c127da08e019dd2ca4bcb"></a><!-- doxytag: member="XCfa_Config::SlaveAxisVideoFormat" ref="e5be4d320b5c127da08e019dd2ca4bcb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_x_cfa___config.html#e5be4d320b5c127da08e019dd2ca4bcb">XCfa_Config::SlaveAxisVideoFormat</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Slave Axis Video Format
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="xcfa_8h.html">xcfa.h</a></ul>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI#current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI#current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.nav
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}

View file

@ -0,0 +1,609 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xcfa.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xcfa.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains the implementation of the interface functions for CFA core. Refer to the header file <a class="el" href="xcfa_8h.html">xcfa.h</a> for more detailed information.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------ -------- --------------------------------------------------
1.00 drg/jz 01/13/10 First Release
3.00a gz 10/22/10 Updated for CFA V3.0
4.00a rc 09/11/11 Updated for CFA v4.0
5.00a se 12/01/11 Updated for CFA v5.0
7.0 adk 01/07/14 Changed the file name from
cfa.c to <a class="el" href="xcfa_8c.html">xcfa.c</a>
Implemented the following functions:
XCfa_CfgInitialize, XCfa_Setup,
XCfa_GetVersion,
XCfa_EnableDbgByPass,
XCfa_IsDbgByPassEnabled,
XCfa_DisableDbgBypass,
XCfa_EnableDbgTestPattern,
XCfa_IsDbgTestPatternEnabled,
XCfa_DisableDbgTestPattern,
XCfa_GetDbgFrameCount
XCfa_GetDbgLineCount, XCfa_GetDbgPixelCount
XCfa_SetActiveSize, XCfa_GetActiveSize
XCfa_SetBayerPhase, XCfa_GetBayerPhase,
StubCallBack, StubErrCallBack.
</pre>
<p>
<code>#include &quot;<a class="el" href="xcfa_8h.html">xcfa.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#f21a4a9fe167729fd388e53a9ae467d9">XCfa_CfgInitialize</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr, <a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> *CfgPtr, u32 EffectiveAddr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#37662371560e8ef83e5c22c6bc1f8252">XCfa_Setup</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#2950494fe006bb716d867057fa40fe84">XCfa_EnableDbgByPass</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#20b43ecec565a3e404cf16368142775b">XCfa_IsDbgByPassEnabled</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#a09e739bf44e6261b9040b1c94fa4a09">XCfa_DisableDbgBypass</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#e26d790d91c21b1af050608d074e1d14">XCfa_EnableDbgTestPattern</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#320714714f0771a74ae788d77db9c89c">XCfa_IsDbgTestPatternEnabled</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#24ee7bc8ecaa7b4a2ade87fe249dd991">XCfa_DisableDbgTestPattern</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#6eda030a6ee721c31fa2c6468379b08a">XCfa_GetVersion</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#b5c5f6192e717b7cabca4900d34ea1a6">XCfa_GetDbgFrameCount</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#c3d959e0e75b1b6d6110a2413a80dd2d">XCfa_GetDbgLineCount</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#d452cec853f944bbb0ad8af2ed46641e">XCfa_GetDbgPixelCount</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#ee423f2591247f27520ff2ed16bb566f">XCfa_SetActiveSize</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr, u16 HSize, u16 VSize)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#a11033dd33aa2ea4e272c8f478db9fc2">XCfa_GetActiveSize</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr, u16 *HSize, u16 *VSize)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#f271da6a9bacbc9c1c2167be036b9136">XCfa_SetBayerPhase</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr, enum <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c">BayerPhaseCombination</a> BayerPhase)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa_8c.html#2456dd20b52e21211b6fb8ca071d24b4">XCfa_GetBayerPhase</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="f21a4a9fe167729fd388e53a9ae467d9"></a><!-- doxytag: member="xcfa.c::XCfa_CfgInitialize" ref="f21a4a9fe167729fd388e53a9ae467d9" args="(XCfa *InstancePtr, XCfa_Config *CfgPtr, u32 EffectiveAddr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XCfa_CfgInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> *&nbsp;</td>
<td class="paramname"> <em>CfgPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>EffectiveAddr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function initializes the CFA core. This function must be called prior to using the CFA core. Initialization of the CFA includes setting up the instance data and ensuring the hardware is in a quiescent state.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em>&nbsp;</td><td>is a reference to a configuration structure containing information about the CFA core. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddr</em>&nbsp;</td><td>is the base address of the core. If address translation is being used then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li></ul>
</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="a09e739bf44e6261b9040b1c94fa4a09"></a><!-- doxytag: member="xcfa.c::XCfa_DisableDbgBypass" ref="a09e739bf44e6261b9040b1c94fa4a09" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_DisableDbgBypass </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function disables bypass mode of the CFA core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="24ee7bc8ecaa7b4a2ade87fe249dd991"></a><!-- doxytag: member="xcfa.c::XCfa_DisableDbgTestPattern" ref="24ee7bc8ecaa7b4a2ade87fe249dd991" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_DisableDbgTestPattern </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function disables the test pattern mode of the CFA core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="2950494fe006bb716d867057fa40fe84"></a><!-- doxytag: member="xcfa.c::XCfa_EnableDbgByPass" ref="2950494fe006bb716d867057fa40fe84" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_EnableDbgByPass </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This sets the bypass bit of the control register to switch the core to bypass mode if debug is enabled in the CFA core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="e26d790d91c21b1af050608d074e1d14"></a><!-- doxytag: member="xcfa.c::XCfa_EnableDbgTestPattern" ref="e26d790d91c21b1af050608d074e1d14" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_EnableDbgTestPattern </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the test-pattern mode of the CFA core if debug features is enabled.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="a11033dd33aa2ea4e272c8f478db9fc2"></a><!-- doxytag: member="xcfa.c::XCfa_GetActiveSize" ref="a11033dd33aa2ea4e272c8f478db9fc2" args="(XCfa *InstancePtr, u16 *HSize, u16 *VSize)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_GetActiveSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>HSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>VSize</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the number of Active Pixel per Scan line and number of Active Lines per Frame from the Active Frame Size register.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>HSize</em>&nbsp;</td><td>is a pointer to 16-bit variable in which the number of Active Pixels per Scan Line is returned. (Range is 32 to 7680). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>VSize</em>&nbsp;</td><td>is a pointer to 16-bit variable in which the number of Active Lines per Frame is returned. (Range is 32 to 7680).</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="2456dd20b52e21211b6fb8ca071d24b4"></a><!-- doxytag: member="xcfa.c::XCfa_GetBayerPhase" ref="2456dd20b52e21211b6fb8ca071d24b4" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XCfa_GetBayerPhase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the Bayer phase value combination from Bayer phase register.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>BayerPhase the Bayer Phase value 0 to 3. The Phase value combinations are<ul>
<li>Bayer Phase 0 is XCFA_RGRG_COMBINATION.</li><li>Bayer Phase 1 is XCFA_GRGR_COMBINATION.</li><li>Bayer Phase 2 is XCFA_GBGB_COMBINATION.</li><li>Bayer Phase 3 is XCFA_BGBG_COMBINATION.</li></ul>
</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>- It is a double buffered register. </dd></dl>
</div>
</div><p>
<a class="anchor" name="b5c5f6192e717b7cabca4900d34ea1a6"></a><!-- doxytag: member="xcfa.c::XCfa_GetDbgFrameCount" ref="b5c5f6192e717b7cabca4900d34ea1a6" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XCfa_GetDbgFrameCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets number of frames processed since power-up or last time the core is reset.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>FrameCount is the number of frames processed since power up.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="c3d959e0e75b1b6d6110a2413a80dd2d"></a><!-- doxytag: member="xcfa.c::XCfa_GetDbgLineCount" ref="c3d959e0e75b1b6d6110a2413a80dd2d" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XCfa_GetDbgLineCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the number of lines processed since power-up or last time the core is reset.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>LineCount is the number of lines processed since power up.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="d452cec853f944bbb0ad8af2ed46641e"></a><!-- doxytag: member="xcfa.c::XCfa_GetDbgPixelCount" ref="d452cec853f944bbb0ad8af2ed46641e" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XCfa_GetDbgPixelCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the number of pixels processed since power-up or last time the core is reset.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>PixelCount is the number of pixels processed since power up.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="6eda030a6ee721c31fa2c6468379b08a"></a><!-- doxytag: member="xcfa.c::XCfa_GetVersion" ref="6eda030a6ee721c31fa2c6468379b08a" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XCfa_GetVersion </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the Version of the CFA core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Returns the contents of the Version register.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="20b43ecec565a3e404cf16368142775b"></a><!-- doxytag: member="xcfa.c::XCfa_IsDbgByPassEnabled" ref="20b43ecec565a3e404cf16368142775b" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XCfa_IsDbgByPassEnabled </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the current status of the bypass setting of the CFA core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Core debug bypass mode.<ul>
<li>TRUE = Bypass mode is enabled.</li><li>FALSE = Bypass mode is not enabled.</li></ul>
</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="320714714f0771a74ae788d77db9c89c"></a><!-- doxytag: member="xcfa.c::XCfa_IsDbgTestPatternEnabled" ref="320714714f0771a74ae788d77db9c89c" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XCfa_IsDbgTestPatternEnabled </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the test-pattern mode if debug feature is enabled.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Test-pattern generator mode.<ul>
<li>TRUE = Test-pattern mode is enabled.</li><li>FALSE = Test-pattern mode is not enabled.</li></ul>
</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Debug functionality should be enabled. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ee423f2591247f27520ff2ed16bb566f"></a><!-- doxytag: member="xcfa.c::XCfa_SetActiveSize" ref="ee423f2591247f27520ff2ed16bb566f" args="(XCfa *InstancePtr, u16 HSize, u16 VSize)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_SetActiveSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>HSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>VSize</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the active H/V sizes in the Active Size register.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>HSize</em>&nbsp;</td><td>is number of Active Pixels per scan line to be set. Range of HSize is 32 to 7680. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>VSize</em>&nbsp;</td><td>is number of Active Lines per frame to be set. Range of VSize is 32 to 7680.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="f271da6a9bacbc9c1c2167be036b9136"></a><!-- doxytag: member="xcfa.c::XCfa_SetBayerPhase" ref="f271da6a9bacbc9c1c2167be036b9136" args="(XCfa *InstancePtr, enum BayerPhaseCombination BayerPhase)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_SetBayerPhase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum <a class="el" href="xcfa_8h.html#d8fa790638141991e3be81ea5401344c">BayerPhaseCombination</a>&nbsp;</td>
<td class="paramname"> <em>BayerPhase</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function specify whether the starting position pixel(0,0) of the Bayer sampling grid is on a red-green or blue-green line and whether the first pixel is green or not.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BayerPhase</em>&nbsp;</td><td>to be set to identify starting position. Range of Phase is 0 to 3. The Phase value combinations are<ul>
<li>Bayer Phase 0 is XCFA_RGRG_COMBINATION.</li><li>Bayer Phase 1 is XCFA_GRGR_COMBINATION.</li><li>Bayer Phase 2 is XCFA_GBGB_COMBINATION.</li><li>Bayer Phase 3 is XCFA_BGBG_COMBINATION.</li><li>It is a double buffered register.</li></ul>
</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="37662371560e8ef83e5c22c6bc1f8252"></a><!-- doxytag: member="xcfa.c::XCfa_Setup" ref="37662371560e8ef83e5c22c6bc1f8252" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_Setup </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the input/output frame size in Active Size register and enables the register update.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,77 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xcfa_g.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xcfa_g.c File Reference</h1>
<p>
<code>#include &quot;xparameters.h&quot;</code><br>
<code>#include &quot;<a class="el" href="xcfa_8h.html">xcfa.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa__g_8c.html#41fea36b791c10aa93e26f29cf72da68">XCfa_ConfigTable</a> []</td></tr>
</table>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="41fea36b791c10aa93e26f29cf72da68"></a><!-- doxytag: member="xcfa_g.c::XCfa_ConfigTable" ref="41fea36b791c10aa93e26f29cf72da68" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> <a class="el" href="xcfa__g_8c.html#41fea36b791c10aa93e26f29cf72da68">XCfa_ConfigTable</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">
{
{
XPAR_FMC_SENSOR_INPUT_V_CFA_1_DEVICE_ID,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_BASEADDR,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_TDATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_TDATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_FORMAT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_FORMAT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_TUSER_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_TUSER_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_ADDR_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_CLK_FREQ_HZ,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_BAYER_PHASE,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_ACTIVE_ROWS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_ACTIVE_COLS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_MAX_COLS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_INTC_IF,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_AXI4_LITE,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_DEBUG,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HOR_FILT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_FRINGE_TOL
}
}
</pre></div>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,73 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xcfa_intr.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xcfa_intr.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains interrupt related functions of the CFA core. Please see <a class="el" href="xcfa_8h.html">xcfa.h</a> for more details of the core.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------ -------- --------------------------------------------------
7.0 adk 01/07/14 First release.
Implemented the following functions:
XCfa_IntrHandler, XCfa_SetCallBack.
</pre>
<p>
<code>#include &quot;<a class="el" href="xcfa_8h.html">xcfa.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa__intr_8c.html#d87f5a62c5e92e497cdcb08527a3b093">XCfa_IntrHandler</a> (void *InstancePtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="d87f5a62c5e92e497cdcb08527a3b093"></a><!-- doxytag: member="xcfa_intr.c::XCfa_IntrHandler" ref="d87f5a62c5e92e497cdcb08527a3b093" args="(void *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XCfa_IntrHandler </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function is the interrupt handler for the CFA core.<p>
This handler reads the pending interrupt from the STATUS register, determines the source of the interrupts and calls the respective callbacks for the interrupts that are enabled in IRQ_ENABLE register, and finally clears the interrupts.<p>
The application is responsible for connecting this function to the interrupt system. Application beyond this core is also responsible for providing callbacks to handle interrupts and installing the callbacks using <a class="el" href="xcfa_8h.html#befbc56c01d23f8d80c896e8664eb7ab">XCfa_SetCallBack()</a> during initialization phase.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance that just interrupted.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Interrupt interface should be enabled. </dd></dl>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,73 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xcfa_selftest.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xcfa_selftest.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains the self-test functions for the CFA core. The self test function reads the Version register.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------- -------- ----------------------------------------------
7.0 adk 01/07/14 First Release
Implemented XCfa_SelfTest function.
</pre>
<p>
<code>#include &quot;<a class="el" href="xcfa_8h.html">xcfa.h</a>&quot;</code><br>
<code>#include &quot;xstatus.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa__selftest_8c.html#a5f5c003a9010f557e2f770ebcc8e19c">XCfa_SelfTest</a> (<a class="el" href="struct_x_cfa.html">XCfa</a> *InstancePtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a5f5c003a9010f557e2f770ebcc8e19c"></a><!-- doxytag: member="xcfa_selftest.c::XCfa_SelfTest" ref="a5f5c003a9010f557e2f770ebcc8e19c" args="(XCfa *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XCfa_SelfTest </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_cfa.html">XCfa</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function reads complete Version register of CFA core and compares with zero values as part of self test.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_cfa.html">XCfa</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li>XST_SUCCESS if the Version register read test was successful.</li><li>XST_FAILURE if the Version register read test failed.</li></ul>
</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,71 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xcfa_sinit.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xcfa_sinit.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file contains static initialization methods for Xilinx CFA core.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------ -------- -----------------------------------------------
7.0 adk 01/07/14 First release.
Implemented XCfa_LookupConfig function.
</pre>
<p>
<code>#include &quot;<a class="el" href="xcfa_8h.html">xcfa.h</a>&quot;</code><br>
<code>#include &quot;xparameters.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcfa__sinit_8c.html#a66ae38886661dd25bc5b5831a32fa11">XCfa_LookupConfig</a> (u16 DeviceId)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a66ae38886661dd25bc5b5831a32fa11"></a><!-- doxytag: member="xcfa_sinit.c::XCfa_LookupConfig" ref="a66ae38886661dd25bc5b5831a32fa11" args="(u16 DeviceId)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_x_cfa___config.html">XCfa_Config</a>* XCfa_LookupConfig </td>
<td>(</td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>DeviceId</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function returns a reference to an <a class="el" href="struct_x_cfa___config.html">XCfa_Config</a> structure based on the unique device id, <em>DeviceId</em>. The return value will refer to an entry in the device configuration table defined in the <a class="el" href="xcfa__g_8c.html">xcfa_g.c</a> file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>DeviceId</em>&nbsp;</td><td>is the unique device ID of the core for the lookup operation.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>CfgPtr is a reference to a config record in the configuration table (in <a class="el" href="xcfa__g_8c.html">xcfa_g.c</a>) corresponding to <em>DeviceId</em>, or NULL if no match is found.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.

View file

@ -0,0 +1,195 @@
/******************************************************************************
*
* (c) Copyright 2010-14 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 cfa_selftest_example.c
*
* This file contains an example using the XCfa driver to do self test
* on the device.
*
* @note
*
* None
*
* MODIFICATION HISTORY:
* <pre>
* Ver Who Date Changes
* ----- ------ -------- -----------------------------------------------
* 1.00a drg/jz 01/13/10 First Release
* 1.03a sg 08/14/12 Updated the example for CR 666306. Modified
* the device ID to use the first Device Id
* Removed the printf at the start of the main
* 7.0 adk 01/15/14 Implimented main and XCfaSelfTestExample
* functions.
* Adherence to MISRA C 2012
* standard guidelines.
* </pre>
******************************************************************************/
/***************************** Include Files *********************************/
#include "xcfa.h"
#include "xparameters.h"
#include "xil_printf.h"
/************************** Constant Definitions *****************************/
/*
* The following constants map to the XPAR parameters created in the
* xparameters.h file. They are defined here such that a user can easily
* change all the needed parameters in one place.
*/
#define CFA_DEVICE_ID XPAR_CFA_0_DEVICE_ID /**< CFA Device ID */
/**************************** Type Definitions *******************************/
/***************** Macros (Inline Functions) Definitions *********************/
/************************** Function Prototypes ******************************/
u32 XCfaSelfTestExample(u16 DeviceId);
/************************** Variable Definitions *****************************/
XCfa Cfa; /**<Instance of the CFA Device */
/*****************************************************************************/
/**
*
* Main function to call the example.
*
* @return XST_SUCCESS if succesful, otherwise XST_FAILURE.
*
* @note None.
*
******************************************************************************/
int main(void)
{
u32 Status;
/*
* Run the selftest example
*/
Status = XCfaSelfTestExample((u16)CFA_DEVICE_ID);
if (Status != (u32)XST_SUCCESS) {
return (int)XST_FAILURE;
}
xil_printf("Successfully ran CFA Selftest Example\r\n");
return (int)XST_SUCCESS;
}
/*****************************************************************************/
/**
*
* This function does a minimal test on the XCfa driver.
*
*
* @param DeviceId is the XPAR_<CFA_instance>_DEVICE_ID value from
* xparameters.h.
*
* @return XST_SUCCESS if succesful, otherwise XST_FAILURE.
*
* @note None.
*
******************************************************************************/
u32 XCfaSelfTestExample(u16 DeviceId)
{
u32 Status;
XCfa_Config *Config;
u32 BeforeData = (u32)0x00; /**< Default value of the Control registers
* Status Register and Error Register */
u32 AfterData;
/*
* Initialize the CFA driver so that it's ready to use
* Look up the configuration in the config table,
* then initialize it.
*/
Config = XCfa_LookupConfig(DeviceId);
if (NULL == Config) {
return (u32)XST_FAILURE;
}
Status = XCfa_CfgInitialize(&Cfa, Config, Config->BaseAddress);
if (Status != (u32)XST_SUCCESS) {
return (u32)XST_FAILURE;
}
/*
* Perform a self-test to check hardware build.
*/
Status = XCfa_SelfTest(&Cfa);
if (Status != (u32)XST_SUCCESS) {
return (u32)XST_FAILURE;
}
/*
* Perform a self-test with Control register default values
*/
AfterData = XCfa_ReadReg(Config->BaseAddress, XCFA_CONTROL_OFFSET);
if(BeforeData != AfterData){
return (u32)XST_FAILURE;
}
/*
* Perform a self-test with Status register default values
*/
AfterData = XCfa_ReadReg(Config->BaseAddress, XCFA_STATUS_OFFSET);
if(BeforeData != AfterData){
return (u32)XST_FAILURE;
}
/*
* Perform a self-test with Error register default values
*/
AfterData = XCfa_ReadReg(Config->BaseAddress, XCFA_ERROR_OFFSET);
if(BeforeData != AfterData){
return (u32)XST_FAILURE;
}
return (u32)XST_SUCCESS;
}

View file

@ -1,88 +0,0 @@
/******************************************************************************
*
* Copyright (C) 2001 - 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/**
*
* @file example.c
*
* This file demonstrates how to use Xilinx Color Filter Array (CFA)
* Interpolation core pcore driver functions.
*
*
* ***************************************************************************
*/
#include "cfa.h"
#include "xparameters.h"
/***************************************************************************/
// Color Filter Array Interpolation Register Reading Example
// This function provides an example of how to read the current configuration
// settings of the CFA core.
/***************************************************************************/
void report_cfa_settings(u32 BaseAddress) {
u32 status, reg_val;
unsigned char inchar=0;
xil_printf("Color Filter Array Core Configuration:\r\n");
xil_printf(" Enable Bit: %1d\r\n", CFA_ReadReg(BaseAddress, CFA_CONTROL) & CFA_CTL_EN_MASK);
xil_printf(" Register Update Bit: %1d\r\n", (CFA_ReadReg(BaseAddress, CFA_CONTROL) & CFA_CTL_RUE_MASK) >> 1);
xil_printf(" Reset Bit: %1d\r\n", CFA_ReadReg(BaseAddress, CFA_CONTROL) & CFA_RST_RESET);
status = CFA_ReadReg(BaseAddress, CFA_STATUS);
xil_printf(" CFA Status: %08x \r\n", status);
xil_printf(" Core Version: %1d.%1d\r\n", CFA_ReadReg(BaseAddress, CFA_VERSION));
reg_val = CFA_ReadReg(BaseAddress, CFA_CONTROL );
xil_printf("CFA_CONTROL : %8x\r\n", reg_val);
reg_val = CFA_ReadReg(BaseAddress, CFA_IRQ_EN );
xil_printf("CFA_IRQ_EN : %8x\r\n", reg_val);
reg_val = CFA_ReadReg(BaseAddress, CFA_BAYER_PHASE );
xil_printf("CFA_BAYER_PHASE : %8d\r\n", reg_val);
reg_val = (CFA_ReadReg(BaseAddress, CFA_ACTIVE_SIZE ) && 0x1FFF);
xil_printf("Active Rows : %8d\r\n", reg_val);
reg_val = (CFA_ReadReg(BaseAddress, CFA_ACTIVE_SIZE) >> 16);
xil_printf("Active Columns : %8d\r\n", reg_val);
xil_printf("Press Space to continue!\r\n", reg_val);
while (inchar != ' ') inchar = inbyte();
}
/*****************************************************************************/
//
// This is the main function for the CFA example.
//
/*****************************************************************************/
int main(void)
{
// Print the current settings for the CFA core
report_cfa_settings(XPAR_CFA_0_BASEADDR);
return 0;
}

View file

@ -1,317 +0,0 @@
/******************************************************************************
*
* Copyright (C) 2001 - 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/**
*
* @file cfa.h
*
* This header file contains identifiers and register-level driver functions (or
* macros) that can be used to access the Xilinx Color Filter Array Interpolation
* (CFA) core instance.
*
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ---- -------- -------------------------------------------------------
* 5.00a se 12/01/11 Updated for CFA v5.0, replaced xio.h with xil_io.h
* 4.00a rc 09/11/11 Updated for CFA v4.0
* 3.00a gz 10/22/10 Updated for CFA V3.0
* 6.0 adk 19/12/13 Updated as per the New Tcl API's
*
******************************************************************************/
#ifndef CFA_DRIVER_H /* prevent circular inclusions */
#define CFA_DRIVER_H /* by using protection macros */
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#include "xil_io.h"
/************************** Constant Definitions *****************************/
/**
* Register Offsets
*/
/* General Control Registers */
#define CFA_CONTROL 0x000 /**< Control (R/W) */
#define CFA_STATUS 0x004 /**< Status (R/W) */
#define CFA_ERROR 0x008 /**< Error (R/W) */
#define CFA_IRQ_EN 0x00C /**< IRQ Enable */
#define CFA_VERSION 0x010 /**< Version */
#define CFA_SYSDEBUG0 0x014 /**< System Debug 0 */
#define CFA_SYSDEBUG1 0x018 /**< System Debug 1 */
#define CFA_SYSDEBUG2 0x01C /**< System Debug 2 */
/* Timing Control Registers */
#define CFA_ACTIVE_SIZE 0x020 /**< Active Size (V x H) */
/* Core Specific Registers */
#define CFA_BAYER_PHASE 0x100 /**< bayer_phase R/W user register */
/**
* CFA Control Register bit definition
*/
#define CFA_CTL_EN_MASK 0x00000001 /**< CFA Enable */
#define CFA_CTL_RUE_MASK 0x00000002 /**< CFA Register Update */
#define CFA_CTL_CS_MASK 0x00000004 /**< CFA Register Clear Status */
/**
* CFA Reset Register bit definition
*/
#define CFA_RST_RESET 0x80000000 /**< Software Reset - Instantaneous */
#define CFA_RST_AUTORESET 0x40000000 /**< Software Reset - Auto-synchronize to SOF */
/***************** Macros (Inline Functions) Definitions *********************/
#define CFA_In32 Xil_In32
#define CFA_Out32 Xil_Out32
/**
*
* Read the given register.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
* @param RegOffset is the register offset of the register (defined at top of this file)
*
* @return The 32-bit value of the register
*
* @note
* C-style signature:
* u32 CFA_ReadReg(u32 BaseAddress, u32 RegOffset)
*
******************************************************************************/
#define CFA_ReadReg(BaseAddress, RegOffset) \
CFA_In32((BaseAddress) + (RegOffset))
/*****************************************************************************/
/**
*
* Write the given register.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
* @param RegOffset is the register offset of the register (defined at top of this file)
* @param Data is the 32-bit value to write to the register
*
* @return None.
*
* @note
* C-style signature:
* void CFA_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)
*
******************************************************************************/
#define CFA_WriteReg(BaseAddress, RegOffset, Data) \
CFA_Out32((BaseAddress) + (RegOffset), (Data))
/*****************************************************************************/
/**
*
* This macro enables a CFA core instance.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_Enable(u32 BaseAddress);
*
******************************************************************************/
#define CFA_Enable(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, \
CFA_ReadReg(BaseAddress, CFA_CONTROL) | \
CFA_CTL_EN_MASK)
/*****************************************************************************/
/**
*
* This macro disables a CFA core instance.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_Disable(u32 BaseAddress);
*
******************************************************************************/
#define CFA_Disable(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, \
CFA_ReadReg(BaseAddress, CFA_CONTROL) & \
~CFA_CTL_EN_MASK)
/*****************************************************************************/
/**
*
* This macro commits all the register value changes made so far by the software
* to the CFA core instance. The registers will be automatically updated
* on the next rising-edge of the VBlank_in signal on the core.
* It is up to the user to manually disable the register update after a sufficient
* amount if time.
*
* This function only works when the CFA core is enabled.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_RegUpdateEnable(u32 BaseAddress);
*
******************************************************************************/
#define CFA_RegUpdateEnable(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, \
CFA_ReadReg(BaseAddress, CFA_CONTROL) | \
CFA_CTL_RUE_MASK)
/*****************************************************************************/
/**
*
* This macro prevents the CFA core instance from committing recent changes made
* so far by the software. When disabled, changes to other configuration registers
* are stored, but do not effect the behavior of the core.
*
* This function only works when the CFA core is enabled.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_RegUpdateDisable(u32 BaseAddress);
*
******************************************************************************/
#define CFA_RegUpdateDisable(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, \
CFA_ReadReg(BaseAddress, CFA_CONTROL) & \
~CFA_CTL_RUE_MASK)
/*****************************************************************************/
/**
*
* This macro clears the status register of the CFA instance, by first asserting then
* deasserting the CLEAR_STATUS flag of CFA_CONTROL.
* This function only works when the CFA core is enabled.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_ClearStatus(u32 BaseAddress);
*
******************************************************************************/
#define CFA_ClearStatus(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, CFA_ReadReg(BaseAddress, CFA_CONTROL) | CFA_CTL_CS_MASK); \
CFA_WriteReg(BaseAddress, CFA_CONTROL, CFA_ReadReg(BaseAddress, CFA_CONTROL) & ~CFA_CTL_CS_MASK)
/*****************************************************************************/
/**
*
* This macro resets a CFA core instance. This reset effects the core immediately,
* and may cause image tearing.
*
* This reset resets the CFA's configuration registers, and holds the core's outputs
* in their reset state until CFA_ClearReset() is called.
*
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_Reset(u32 BaseAddress);
*
******************************************************************************/
#define CFA_Reset(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, CFA_RST_RESET) \
/*****************************************************************************/
/**
*
* This macro clears the CFA's reset flag (which is set using CFA_Reset(), and
* returns it to normal operation. This ClearReset effects the core immediately,
* and may cause image tearing.
*
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_ClearReset(u32 BaseAddress);
*
******************************************************************************/
#define CFA_ClearReset(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, 0) \
/*****************************************************************************/
/**
*
* This macro resets a CFA instance, but differs from CFA_Reset() in that it
* automatically synchronizes to the SOF of the core to prevent tearing.
*
* On the next rising-edge of SOF following a call to CFA_AutoSyncReset(),
* all of the core's configuration registers and outputs will be reset, then the
* reset flag will be immediately released, allowing the core to immediately resume
* default operation.
*
* @param BaseAddress is the Xilinx EDK base address of the CFA core (from xparameters.h)
*
* @return None.
*
* @note
* C-style signature:
* void CFA_FSyncReset(u32 BaseAddress);
*
******************************************************************************/
#define CFA_FSyncReset(BaseAddress) \
CFA_WriteReg(BaseAddress, CFA_CONTROL, CFA_RST_AUTORESET) \
/************************** Function Prototypes ******************************/
#ifdef __cplusplus
}
#endif
#endif /* end of protection macro */

View file

@ -0,0 +1,645 @@
/******************************************************************************
*
* (c) Copyright 2001-14 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa.c
*
* This file contains the implementation of the interface functions for CFA
* core. Refer to the header file xcfa.h for more detailed information.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------------------
* 1.00 drg/jz 01/13/10 First Release
* 3.00a gz 10/22/10 Updated for CFA V3.0
* 4.00a rc 09/11/11 Updated for CFA v4.0
* 5.00a se 12/01/11 Updated for CFA v5.0
* 7.0 adk 01/07/14 Changed the file name from
* cfa.c to xcfa.c
* Implemented the following functions:
* XCfa_CfgInitialize, XCfa_Setup,
* XCfa_GetVersion,
* XCfa_EnableDbgByPass,
* XCfa_IsDbgByPassEnabled,
* XCfa_DisableDbgBypass,
* XCfa_EnableDbgTestPattern,
* XCfa_IsDbgTestPatternEnabled,
* XCfa_DisableDbgTestPattern,
* XCfa_GetDbgFrameCount
* XCfa_GetDbgLineCount, XCfa_GetDbgPixelCount
* XCfa_SetActiveSize, XCfa_GetActiveSize
* XCfa_SetBayerPhase, XCfa_GetBayerPhase,
* StubCallBack, StubErrCallBack.
* </pre>
*
******************************************************************************/
/***************************** Include Files *********************************/
#include "xcfa.h"
/************************** Constant Definitions *****************************/
/***************** Macros (Inline Functions) Definitions *********************/
/**************************** Type Definitions *******************************/
/************************** Function Prototypes ******************************/
static void StubCallBack (void *CallBackRef);
static void StubErrCallBack (void *CallBackRef, u32 ErrorMask);
/************************** Variable Definitions *****************************/
/************************** Function Definitions *****************************/
/*****************************************************************************/
/**
*
* This function initializes the CFA core. This function must be called
* prior to using the CFA core. Initialization of the CFA includes setting up
* the instance data and ensuring the hardware is in a quiescent state.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param CfgPtr is a reference to a configuration structure
* containing information about the CFA core.
* @param EffectiveAddr is the base address of the core. If address
* translation is being used then this parameter must
* reflect the virtual base address. Otherwise, the physical
* address should be used.
*
* @return
* - XST_SUCCESS if initialization was successful.
*
* @note None.
*
******************************************************************************/
int XCfa_CfgInitialize(XCfa *InstancePtr, XCfa_Config *CfgPtr,
u32 EffectiveAddr)
{
/* Verify arguments. */
Xil_AssertNonvoid(CfgPtr != NULL);
Xil_AssertNonvoid(EffectiveAddr != ((u32)0x0));
/* Setup the instance. */
(void)memset((void *)InstancePtr, 0, sizeof(XCfa));
(void)memcpy((void *)&(InstancePtr->Config), (const void *)CfgPtr,
sizeof(XCfa_Config));
InstancePtr->Config.BaseAddress = EffectiveAddr;
/*
* Set all handlers to stub values, let user configure
* this data later.
*/
InstancePtr->ProcStartCallBack =
(XCfa_CallBack)((void *)StubCallBack);
InstancePtr->FrameDoneCallBack =
(XCfa_CallBack)((void *)StubCallBack);
InstancePtr->ErrCallBack =
(XCfa_ErrorCallBack)((void *)StubErrCallBack);
/*
* Reset the hardware and set the flag to indicate the core is
* ready.
*/
XCfa_Reset(InstancePtr);
InstancePtr->IsReady = (u32)(XIL_COMPONENT_IS_READY);
return (XST_SUCCESS);
}
/*****************************************************************************/
/**
*
* This function sets the input/output frame size in Active Size register and
* enables the register update.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note None.
*
******************************************************************************/
void XCfa_Setup(XCfa *InstancePtr)
{
u32 Data;
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
XCfa_RegUpdateDisable(InstancePtr);
/* Write into active size register */
Data = (((InstancePtr->VSize) << (XCFA_ACTSIZE_NUM_LINE_SHIFT)) &
(XCFA_ACTSIZE_NUM_LINE_MASK)) | ((InstancePtr->HSize) &
(XCFA_ACTSIZE_NUM_PIXEL_MASK));
XCfa_WriteReg(InstancePtr->Config.BaseAddress,
(XCFA_ACTIVE_SIZE_OFFSET), Data);
XCfa_RegUpdateEnable(InstancePtr);
}
/*****************************************************************************/
/**
*
* This sets the bypass bit of the control register to switch the core to bypass
* mode if debug is enabled in the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
void XCfa_EnableDbgByPass(XCfa *InstancePtr)
{
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Write into control register to set debug bypass. */
XCfa_WriteReg(InstancePtr->Config.BaseAddress, (XCFA_CONTROL_OFFSET),
((XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) |
(XCFA_CTL_BPE_MASK)));
}
/*****************************************************************************/
/**
*
* This function gets the current status of the bypass setting of the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return Core debug bypass mode.
* - TRUE = Bypass mode is enabled.
* - FALSE = Bypass mode is not enabled.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
int XCfa_IsDbgByPassEnabled(XCfa *InstancePtr)
{
u32 DbgByPass;
int Status;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Read from control register to know debug bypass status. */
DbgByPass = (XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) & (XCFA_CTL_BPE_MASK);
if (DbgByPass == (XCFA_CTL_BPE_MASK)) {
Status = (TRUE);
}
else {
Status = (FALSE);
}
return Status;
}
/*****************************************************************************/
/**
*
* This function disables bypass mode of the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
void XCfa_DisableDbgBypass(XCfa *InstancePtr)
{
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Write into control register to disable debug bypass. */
XCfa_WriteReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET),
((XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) & (~(XCFA_CTL_BPE_MASK))));
}
/*****************************************************************************/
/**
*
* This function sets the test-pattern mode of the CFA core if debug
* features is enabled.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
void XCfa_EnableDbgTestPattern(XCfa *InstancePtr)
{
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Write into control register to set test pattern. */
XCfa_WriteReg(InstancePtr->Config.BaseAddress, (XCFA_CONTROL_OFFSET),
((XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) | (XCFA_CTL_TPE_MASK)));
}
/*****************************************************************************/
/**
*
* This function gets the test-pattern mode if debug feature is enabled.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return Test-pattern generator mode.
* - TRUE = Test-pattern mode is enabled.
* - FALSE = Test-pattern mode is not enabled.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
int XCfa_IsDbgTestPatternEnabled(XCfa *InstancePtr)
{
u32 DbgTestPattern;
int Status;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Read from control register to know debug test pattern status. */
DbgTestPattern = (XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) & (XCFA_CTL_TPE_MASK);
if (DbgTestPattern == (XCFA_CTL_TPE_MASK)) {
Status = (TRUE);
}
else {
Status = (FALSE);
}
return Status;
}
/*****************************************************************************/
/**
*
* This function disables the test pattern mode of the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
void XCfa_DisableDbgTestPattern(XCfa *InstancePtr)
{
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Write into control register to disable debug bypass. */
XCfa_WriteReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET),
((XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_CONTROL_OFFSET))) & (~(XCFA_CTL_TPE_MASK))));
}
/*****************************************************************************/
/**
*
* This function gets the Version of the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return Returns the contents of the Version register.
*
* @note None.
*
******************************************************************************/
u32 XCfa_GetVersion(XCfa *InstancePtr)
{
u32 Data;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
/* Read version register of the CFA core */
Data = XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_VERSION_OFFSET));
return Data;
}
/*****************************************************************************/
/**
*
* This function gets number of frames processed since power-up or last
* time the core is reset.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return FrameCount is the number of frames processed since power up.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
u32 XCfa_GetDbgFrameCount(XCfa *InstancePtr)
{
u32 FrameCount;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Reads Frame throughput monitor */
FrameCount = XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_SYSDEBUG0_OFFSET));
return FrameCount;
}
/*****************************************************************************/
/**
*
* This function gets the number of lines processed since power-up or last
* time the core is reset.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return LineCount is the number of lines processed since power up.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
u32 XCfa_GetDbgLineCount(XCfa *InstancePtr)
{
u32 LineCount;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Line throughput monitor */
LineCount = XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_SYSDEBUG1_OFFSET));
return LineCount;
}
/*****************************************************************************/
/**
*
* This function gets the number of pixels processed since power-up or last
* time the core is reset.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return PixelCount is the number of pixels processed since power up.
*
* @note Debug functionality should be enabled.
*
******************************************************************************/
u32 XCfa_GetDbgPixelCount(XCfa *InstancePtr)
{
u32 PixelCount;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->Config.HasDebug != (u16)0x0);
/* Pixel throughput monitor */
PixelCount = XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_SYSDEBUG2_OFFSET));
return PixelCount;
}
/*****************************************************************************/
/**
*
* This function sets the active H/V sizes in the Active Size register.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param HSize is number of Active Pixels per scan line to be set.
* Range of HSize is 32 to 7680.
* @param VSize is number of Active Lines per frame to be set.
* Range of VSize is 32 to 7680.
*
* @return None.
*
* @note None.
*
******************************************************************************/
void XCfa_SetActiveSize(XCfa *InstancePtr, u16 HSize, u16 VSize)
{
u32 Size;
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid((VSize >= (u16)(XCFA_VSIZE_FIRST)) &&
(VSize <= (u16)(XCFA_VSIZE_LAST)));
Xil_AssertVoid((HSize >= (u16)(XCFA_HSIZE_FIRST)) &&
(HSize <= (u16)(XCFA_HSIZE_LAST)));
Size = (((u32)VSize) << ((u32)(XCFA_ACTSIZE_NUM_LINE_SHIFT))) |
(HSize);
XCfa_WriteReg(InstancePtr->Config.BaseAddress,
(XCFA_ACTIVE_SIZE_OFFSET), Size);
}
/*****************************************************************************/
/**
*
* This function gets the number of Active Pixel per Scan line
* and number of Active Lines per Frame from the Active Frame Size register.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param HSize is a pointer to 16-bit variable in which
* the number of Active Pixels per Scan Line is returned.
* (Range is 32 to 7680).
* @param VSize is a pointer to 16-bit variable in which
* the number of Active Lines per Frame is returned.
* (Range is 32 to 7680).
*
* @return None.
*
* @note None.
*
******************************************************************************/
void XCfa_GetActiveSize(XCfa *InstancePtr, u16 *HSize, u16 *VSize)
{
/* Verify arguments */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(HSize != NULL);
Xil_AssertVoid(VSize != NULL);
/* Number of active lines per frame */
*HSize = (u16)(XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_ACTIVE_SIZE_OFFSET)) & (XCFA_ACTSIZE_NUM_PIXEL_MASK));
/* Number of active pixels per scan line */
*VSize = (u16)(XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_ACTIVE_SIZE_OFFSET)) & (XCFA_ACTSIZE_NUM_LINE_MASK)) >>
(XCFA_ACTSIZE_NUM_LINE_SHIFT);
}
/*****************************************************************************/
/**
*
* This function specify whether the starting position pixel(0,0) of the
* Bayer sampling grid is on a red-green or blue-green line and whether the
* first pixel is green or not.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param BayerPhase to be set to identify starting position.
* Range of Phase is 0 to 3.
* The Phase value combinations are
* - Bayer Phase 0 is XCFA_RGRG_COMBINATION.
* - Bayer Phase 1 is XCFA_GRGR_COMBINATION.
* - Bayer Phase 2 is XCFA_GBGB_COMBINATION.
* - Bayer Phase 3 is XCFA_BGBG_COMBINATION.
* - It is a double buffered register.
*
* @return None.
*
* @note None.
*
******************************************************************************/
void XCfa_SetBayerPhase(XCfa *InstancePtr,
enum BayerPhaseCombination BayerPhase)
{
/* Verify arguments. */
Xil_AssertVoid(InstancePtr != NULL);
Xil_AssertVoid(BayerPhase <= XCFA_BGBG_COMBINATION);
XCfa_WriteReg(InstancePtr->Config.BaseAddress,
(XCFA_BAYER_PHASE_OFFSET),
((u32)BayerPhase & XCFA_BAYER_PHASE_MASK));
}
/*****************************************************************************/
/**
*
* This function gets the Bayer phase value combination from Bayer phase
* register.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return BayerPhase the Bayer Phase value 0 to 3.
* The Phase value combinations are
* - Bayer Phase 0 is XCFA_RGRG_COMBINATION.
* - Bayer Phase 1 is XCFA_GRGR_COMBINATION.
* - Bayer Phase 2 is XCFA_GBGB_COMBINATION.
* - Bayer Phase 3 is XCFA_BGBG_COMBINATION.
*
* @note - It is a double buffered register.
*
******************************************************************************/
u32 XCfa_GetBayerPhase(XCfa *InstancePtr)
{
u32 BayerPhase;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
BayerPhase = (XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_BAYER_PHASE_OFFSET))) & (XCFA_8_BIT_MASK);
return BayerPhase;
}
/*****************************************************************************/
/**
*
* This routine is a stub for the asynchronous callbacks. The stub is here in
* case the upper layer forgot to set the handlers. On initialization, All
* handlers except error handler are set to this callback. It is considered as
* an error for this handler to be invoked.
*
* @param CallBackRef is a callback reference passed in by the upper
* layer when setting the callback functions, and passed back
* to the upper layer when the callback is invoked.
*
* @return None.
*
* @note None.
*
******************************************************************************/
static void StubCallBack(void *CallBackRef)
{
Xil_AssertVoid(CallBackRef != NULL);
Xil_AssertVoidAlways();
}
/*****************************************************************************/
/**
*
* This routine is a stub for the asynchronous error interrupt callback. The
* stub is here in case the upper layer forgot to set the handler. On
* initialization, Error interrupt handler is set to this callback. It is
* considered as an error for this handler to be invoked.
*
* @param CallBackRef is a callback reference passed in by the upper
* layer when setting the callback functions, and passed back
* to the upper layer when the callback is invoked.
* @param ErrorMask is a bit mask indicating the cause of the error. Its
* value equals 'OR'ing one or more XCFA_IXR_*_MASK values defined
* in xcfa_hw.h.
*
* @return None.
*
* @note None.
*
******************************************************************************/
static void StubErrCallBack(void *CallBackRef, u32 ErrorMask)
{
/* Verify arguments. */
Xil_AssertVoid(CallBackRef != NULL);
Xil_AssertVoid(ErrorMask != ((u32)0x0));
Xil_AssertVoidAlways();
}

View file

@ -0,0 +1,601 @@
/******************************************************************************
*
* (c) Copyright 2001-14 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa.h
*
* This header file contains identifiers and register-level core functions (or
* macros), range macros, structure typedefs that can be used to access the
* Xilinx Color Filter Array Interpolation (CFA) core.
*
* The Color Filter Array Interpolation core reconstructs a color image from an
* RGB or CMY Bayer filtered sensor using a 5x5 interpolation aperture. The core
* is capable of a maximum resolution of 7680 columns by 7680 rows with 8, 10,
* or 12 bits per pixel and supports the bandwidth necessary for High-definition
* (1080p60) resolutions in all Xilinx FPGA device families.
* Higher resolutions can be supported in Xilinx high-performance
* device families.
*
* <b>Initialization & Configuration</b>
*
* The device driver enables higher layer software (e.g., an application) to
* communicate to the CFA core.
*
* XCfa_CfgInitialize() API is used to initialize the CFA core.
* The user needs to first call the XCfa_LookupConfig() API which returns
* the Configuration structure pointer which is passed as a parameter to the
* XCfa_CfgInitialize() API.
*
* <b> Interrupts </b>
*
* The driver provides an interrupt handler XCfa_IntrHandler for handling
* the interrupt from the CFA core. The users of this driver have to
* register this handler with the interrupt system and provide the callback
* functions by using XCfa_SetCallBack API.
*
* <b> Virtual Memory </b>
*
* This driver supports Virtual Memory. The RTOS is responsible for calculating
* the correct device base address in Virtual Memory space.
*
* <b> Threads </b>
*
* This driver is not thread safe. Any needs for threads or thread mutual
* exclusion must be satisfied by the layer above this driver.
*
* <b> Asserts </b>
*
* Asserts are used within all Xilinx drivers to enforce constraints on argument
* values. Asserts can be turned off on a system-wide basis by defining, at
* compile time, the NDEBUG identifier. By default, asserts are turned on and it
* is recommended that users leave asserts on during development.
*
* <b> Building the driver </b>
*
* The XCfa driver is composed of several source files. This allows the user
* to build and link only those parts of the driver that are necessary.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- ----------------------------------------------
* 1.00a xd 08/05/08 First release
* 3.00a gz 10/22/10 Updated for CFA V3.0
* 4.00a rc 09/11/11 Updated for CFA v4.0
* 5.00a se 12/01/11 Updated for CFA v5.0, replaced xio.h with xil_io.h.
* 6.0 adk 19/12/13 Updated as per the New Tcl API's.
* 7.0 adk 01/07/14 Changed the file name from cfa.h to xcfa.h
* Defined following handler types as enum
* XCFA_HANDLER_PROCSTART, XCFA_HANDLER_FRAMEDONE,
* XCFA_HANDLER_ERROR.
*
* Defined the BayerPhaseCombination enum
* for bayerphase combinations.
*
* Defined the following macros:
* XCFA_VSIZE_FIRST, XCFA_VSIZE_LAST
* XCFA_HSIZE_FIRST, XCFA_HSIZE_LAST
* XCfa_Start, XCfa_Stop, XCfa_IntrEnable,
* XCfa_IntrDisable, XCfa_StatusGetPending,
* XCfa_IntrGetPending, XCfa_IntrClear.
*
* Added the following function macros:
* XCfa_Enable, XCfa_Disable, XCfa_Reset, XCfa_SyncReset,
* XCfa_RegUpdateEnable, XCfa_RegUpdateDisable.
*
* Removed the following functional macros:
* CFA_Enable, CFA_Disable, CFA_Reset, CFA_FSyncReset,
* XCFA_RegUpdateEnable, XCFA_RegUpdateDisable,
* CFA_ClearReset, CFA_ClearStatus.
*
* Defined the following type definitions:
* XCfa_Config and XCfa structures.
* XCfa_CallBack and XCfa_ErrorCallBack.
*
* Changes in xcfa_hw.h:
* Added the register offsets and bit masks for the
* registers and added backward compatibility for macros.
*
* Changes in xcfa.c:
* Renamed this file as below:
* cfa.c -> xcfa.c
* Implemented the following functions:
* XCfa_CfgInitialize, XCfa_Setup, XCfa_GetVersion,
* XCfa_EnableDbgByPass, XCfa_IsDbgByPassEnabled,
* XCfa_DisableDbgBypass, XCfa_EnableDbgTestPattern,
* XCfa_IsDbgTestPatternEnabled,
* XCfa_DisableDbgTestPattern, XCfa_GetDbgFrameCount,
* XCfa_GetDbgLineCount, XCfa_GetDbgPixelCount,
* XCfa_SetActiveSize, XCfa_GetActiveSize,
* XCfa_SetBayerPhase, XCfa_GetBayerPhase,
* StubCallBack, StubErrCallBack.
*
* Changes in xcfa_intr.c:
* Implemented the following functions:
* XCfa_IntrHandler, XCfa_SetCallBack.
*
* Changes in xcfa_selftest.c:
* Implemented XCfa_SelfTest function.
*
* Changes in xcfa_sinit.c :
* Implemented XCfa_LookupConfig function.
* </pre>
*
******************************************************************************/
#ifndef XCFA_H_
#define XCFA_H_ /**< Prevent circular inclusions by using
* protection macros */
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#include "xcfa_hw.h"
#include "xil_assert.h"
#include "xstatus.h"
/************************** Constant Definitions *****************************/
/** @name Handler Types
* @{
*/
/**
*
* These constants specify different types of handlers and used to
* differentiate interrupt requests from core.
*
*/
enum {
XCFA_HANDLER_PROCSTART = 1, /**< A processing start event interrupt
* type */
XCFA_HANDLER_FRAMEDONE, /**< A frame done event interrupt
* type */
XCFA_HANDLER_ERROR /**< An error condition interrupt
* type */
} ;
/*@}*/
/** @name Bayer phase
* @{
*/
/**
* These constants specify Bayer phase combinations of the core.
*/
enum BayerPhaseCombination {
XCFA_RGRG_COMBINATION, /**< Red green combination */
XCFA_GRGR_COMBINATION, /**< Green red combination */
XCFA_GBGB_COMBINATION, /**< Green blue combination */
XCFA_BGBG_COMBINATION, /**< Blue green combination */
} ;
/*@}*/
/** @name Active size range macros
* @{
*/
#define XCFA_VSIZE_FIRST 32 /**< Vertical Size starting value */
#define XCFA_VSIZE_LAST 7680 /**< Vertical Size ending value */
#define XCFA_HSIZE_FIRST 32 /**< Horizontal Size starting value */
#define XCFA_HSIZE_LAST 7680 /**< Horizontal Size ending value */
/*@}*/
/***************** Macros (Inline Functions) Definitions *********************/
/*****************************************************************************/
/**
*
* This function macro enables the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_Enable(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_Enable(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET))) | (XCFA_CTL_SW_EN_MASK)))
/*****************************************************************************/
/**
*
* This function macro disables the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_Disable(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_Disable(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET))) & (~(XCFA_CTL_SW_EN_MASK))))
/*****************************************************************************/
/**
*
* This function macro enables/starts the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_Start(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_Start XCfa_Enable
/*****************************************************************************/
/**
*
* This function macro disables/stops the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_Stop(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_Stop XCfa_Disable
/*****************************************************************************/
/**
*
* This function macro commits all the register value changes made so far
* by the software to the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_RegUpdateEnable(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_RegUpdateEnable(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET))) | (XCFA_CTL_RUE_MASK)))
/*****************************************************************************/
/**
*
* This function macro prevents the CFA core from committing recent changes made
* so far by the software. When disabled, changes to other configuration
* registers are stored, but do not effect the behavior of the core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_RegUpdateDisable(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_RegUpdateDisable(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET)))) & (~(XCFA_CTL_RUE_MASK)))
/*****************************************************************************/
/**
*
* This function macro resets a CFA core at the end of the frame being
* processed. It enables core automatically synchronizes to the SOF of the core
* to prevent image tearing. This function macro is differ from XCfa_Reset().
*
* On the next rising-edge of SOF following a call to XCfa_SyncReset(),
* all of the core's configuration registers and outputs will be reset, then the
* reset flag will be immediately released, allowing the core to immediately
* resume default operation.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_SyncReset(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_SyncReset(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), (XCFA_CTL_AUTORESET_MASK))
/*****************************************************************************/
/**
*
* This macro resets CFA core instance. This reset effects the core
* immediately and may cause image tearing.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return None.
*
* @note C-style signature:
* void XCfa_Reset(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_Reset(InstancePtr) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_CONTROL_OFFSET), (XCFA_CTL_RESET_MASK))
/*****************************************************************************/
/**
*
* This function macro returns the pending status of a CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return The pending interrupts of the CFA core. Use XCFA_IXR_*_MASK constants
* defined in xcfa_hw.h to interpret this value.
*
* @note C-style signature:
* u32 XCfa_StatusGePending(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_StatusGetPending(InstancePtr) \
XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_STATUS_OFFSET)) & (XCFA_IXR_ALLINTR_MASK)
/*****************************************************************************/
/**
*
* This function macro clears/acknowledges pending interrupts of the CFA core.
* in the Status register. Bit positions of 1 will be cleared.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param IntrType is the pending interrupts to clear/acknowledge.
* Use OR'ing of XCFA_IXR_*_MASK constants defined in xcfa_hw.h to
* create this parameter value.
*
* @return None.
*
* @note C-style signature:
* void XCfa_IntrClear(XCfa *InstancePtr, u32 IntrType)
*
******************************************************************************/
#define XCfa_IntrClear(InstancePtr, IntrType) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_STATUS_OFFSET), ((IntrType) & \
((u32)(XCFA_IXR_ALLINTR_MASK))))
/*****************************************************************************/
/**
*
* This function macro enables the given individual interrupt(s) on the
* CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param IntrType is the bit-mask of the interrupts to be enabled.
* Bit positions of 1 will be enabled. Bit positions of 0 will
* keep the previous setting. This mask is formed by OR'ing
* XCFA_IXR_*_MASK bits defined in xcfa_hw.h.
*
* @return None.
*
* @note The existing enabled interrupt(s) will remain enabled.
* C-style signature:
* void XCfa_IntrEnable(XCfa *InstancePtr, u32 IntrType)
*
******************************************************************************/
#define XCfa_IntrEnable(InstancePtr, IntrType) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_IRQ_EN_OFFSET), \
(((IntrType) & (XCFA_IXR_ALLINTR_MASK)) | \
(XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_IRQ_EN_OFFSET)))))
/*****************************************************************************/
/**
*
* This function macro disables the given individual interrupt(s) on the
* CFA core by updating Irq_Enable register.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param IntrType is the bit-mask of the interrupts to be disabled.
* Bit positions of 1 will be disabled. Bit positions of 0 will
* keep the previous setting. This mask is formed by OR'ing
* XCFA_IXR_*_MASK bits defined in xcfa_hw.h.
*
* @return None.
*
* @note Any other interrupt not covered by parameter IntrType,
* if enabled before this macro is called, will remain enabled.
* C-style signature:
* void XCfa_IntrDisable(XCfa *InstancePtr, u32 IntrType)
*
******************************************************************************/
#define XCfa_IntrDisable(InstancePtr, IntrType) \
XCfa_WriteReg((InstancePtr)->Config.BaseAddress, \
(XCFA_IRQ_EN_OFFSET), \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_IRQ_EN_OFFSET))) & ((~(IntrType)) & \
(XCFA_IXR_ALLINTR_MASK))))
/*****************************************************************************/
/**
*
* This function macro returns the pending interrupts of the CFA core.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
*
* @return The pending interrupts of the CFA. Use XCFA_IXR_*_MASK
* constants defined in xcfa_hw.h to interpret this value.
* The returned value is a logical AND of the contents of the
* STATUS Register and the IRQ_ENABLE Register.
*
* @note C-style signature:
* u32 XCfa_IntrGetPending(XCfa *InstancePtr)
*
******************************************************************************/
#define XCfa_IntrGetPending(InstancePtr) \
XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_IRQ_EN_OFFSET)) & \
((XCfa_ReadReg((InstancePtr)->Config.BaseAddress, \
(XCFA_STATUS_OFFSET))) & ((u32)(XCFA_IXR_ALLINTR_MASK)))
/**************************** Type Definitions *******************************/
/**
*
* This typedef contains configuration information for the CFA core.
* Each CFA core should have a configuration structure associated.
*
******************************************************************************/
typedef struct {
u16 DeviceId; /**< DeviceId is the unique ID of
* the core */
u32 BaseAddress; /**< BaseAddress is the physical base
* address of the core's
* registers */
u32 SlaveAxisVideoFormat; /**< Slave Axis Video Format */
u32 MasterAxisVideoFormat; /**< Master Axis Video Format */
u8 BayerPhase; /**< Bayer Phase */
u32 SlaveAxiClkFreqHz; /**< Slave Clock Frequency */
u32 ActiveRows; /**< Active rows */
u32 ActiveColumns; /**< Active Columns */
u32 MaxColumns; /**< Maximum Columns */
u16 HasIntcIf; /**< Has Interrupt Control */
u16 HasDebug; /**< Has Debug GUI specified */
u32 HorFilt; /**< Optional Horizontal Filter */
u32 FringeTol; /**< Fringe Tolerance */
} XCfa_Config;
/*****************************************************************************/
/**
*
* Callback type for all interrupts except error interrupt.
*
* @param CallBackRef is a callback reference passed in by the upper
* layer when setting the callback functions, and passed back to
* the upper layer when the callback is invoked.
*
******************************************************************************/
typedef void (*XCfa_CallBack)(void *CallBackRef);
/*****************************************************************************/
/**
*
* Callback type for error interrupt.
*
* @param CallBackRef is a callback reference passed in by the upper
* layer when setting the callback functions, and passed back
* to the upper layer when the callback is invoked.
* @param ErrorMask is a bit mask indicating the cause of the error. Its
* value equals 'OR'ing one or more XCFA_IXR_*_MASK values
* defined in xcfa_hw.h.
*
******************************************************************************/
typedef void (*XCfa_ErrorCallBack)(void *CallBackRef, u32 ErrorMask);
/**
*
* The XCfa instance data structure. A pointer to an instance data
* structure is passed around by functions to refer to a specific
* instance.
*/
typedef struct {
XCfa_Config Config; /**< Hardware configuration */
u32 IsReady; /**< Core instance is initialized */
u16 HSize; /**< Active video horizontal size */
u16 VSize; /**< Active video vertical size */
/* IRQ callbacks here */
XCfa_CallBack ProcStartCallBack;/**< Callback for processing start
* interrupt */
void *ProcStartRef; /**< To be passed to the process start
* interrupt callback */
XCfa_CallBack FrameDoneCallBack;/**< Callback for frame done
* interrupt */
void *FrameDoneRef; /**< To be passed to the frame done
* interrupt callback */
XCfa_ErrorCallBack ErrCallBack; /**< Callback for error interrupt */
void *ErrRef; /**< To be passed to the error
* interrupt callback */
} XCfa;
/************************** Function Prototypes ******************************/
/* Static lookup function implemented in xcfa_sinit.c */
XCfa_Config *XCfa_LookupConfig(u16 DeviceId);
/* Implemented in xcfa.c */
int XCfa_CfgInitialize(XCfa *InstancePtr, XCfa_Config *CfgPtr,
u32 EffectiveAddr);
void XCfa_Setup(XCfa *InstancePtr);
void XCfa_EnableDbgByPass(XCfa *InstancePtr);
int XCfa_IsDbgByPassEnabled(XCfa *InstancePtr);
void XCfa_DisableDbgBypass(XCfa *InstancePtr);
void XCfa_EnableDbgTestPattern(XCfa *InstancePtr);
int XCfa_IsDbgTestPatternEnabled(XCfa *InstancePtr);
void XCfa_DisableDbgTestPattern(XCfa *InstancePtr);
u32 XCfa_GetVersion(XCfa *InstancePtr);
u32 XCfa_GetDbgFrameCount(XCfa *InstancePtr);
u32 XCfa_GetDbgLineCount(XCfa *InstancePtr);
u32 XCfa_GetDbgPixelCount(XCfa *InstancePtr);
void XCfa_SetActiveSize(XCfa *InstancePtr, u16 HSize, u16 VSize);
void XCfa_GetActiveSize(XCfa *InstancePtr, u16 *HSize, u16 *VSize);
void XCfa_SetBayerPhase(XCfa *InstancePtr,
enum BayerPhaseCombination BayerPhase);
u32 XCfa_GetBayerPhase(XCfa *InstancePtr);
/* Self - Test function in xcfa_selftest.c */
int XCfa_SelfTest(XCfa *InstancePtr);
/* Interrupt related functions in xcfa_intr.c */
void XCfa_IntrHandler(void *InstancePtr);
int XCfa_SetCallBack(XCfa *InstancePtr, u32 HandlerType,
void *CallBackFunc, void *CallBackRef);
#ifdef __cplusplus
}
#endif
#endif /* End of protection macro */

View file

@ -1,6 +1,6 @@
/******************************************************************************
*
* Copyright (C) 2001 - 2014 Xilinx, Inc. All rights reserved.
* (c) Copyright 2014 Xilinx, Inc. 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
@ -30,28 +30,39 @@
*
******************************************************************************/
/**
*
* @file cfa.c
*
* This is the body of the Xilinx Color Filter Array Interpolation Core
* (CFA) core driver. Most of the driver functionality is implemented as
* macros in the cfa.h header file.
*
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ---- -------- -------------------------------------------------------
* 5.00a se 12/01/11 Updated for CFA v5.0
* 4.00a rc 09/11/11 Updated for CFA v4.0
* 3.00a gz 10/22/10 Updated for CFA V3.0
*
******************************************************************************/
#include "xparameters.h"
#include "xcfa.h"
/***************************** Include Files *********************************/
#include "cfa.h"
#include "xenv.h"
/*
* The configuration table for devices
*/
XCfa_Config XCfa_ConfigTable[] =
{
{
XPAR_FMC_SENSOR_INPUT_V_CFA_1_DEVICE_ID,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_BASEADDR,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_TDATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_TDATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_FORMAT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_FORMAT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXIS_VIDEO_TUSER_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_M_AXIS_VIDEO_TUSER_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_ADDR_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_DATA_WIDTH,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_S_AXI_CLK_FREQ_HZ,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_BAYER_PHASE,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_ACTIVE_ROWS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_ACTIVE_COLS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_MAX_COLS,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_INTC_IF,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_AXI4_LITE,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HAS_DEBUG,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_HOR_FILT,
XPAR_FMC_SENSOR_INPUT_V_CFA_1_FRINGE_TOL
}
};

View file

@ -0,0 +1,260 @@
/******************************************************************************
*
* (c) Copyright 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa_hw.h
*
* This header file contains identifiers and register-level driver functions (or
* macros) that can be used to access the Xilinx Color Filter Array
* Interpolation (CFA) core.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- -------------------------------------------------------
* 7.0 adk 01/07/14 First release.
* Added the register offsets and bit masks for the
* registers and added backward compatibility for macros.
* </pre>
*
******************************************************************************/
#ifndef XCFA_HW_H_
#define XCFA_HW_H_ /**< Prevent circular inclusions
* by using protection macros */
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#include "xil_io.h"
/************************** Constant Definitions *****************************/
/** @name General control registers offsets
* @{
*/
#define XCFA_CONTROL_OFFSET 0x000 /**< Control */
#define XCFA_STATUS_OFFSET 0x004 /**< Status */
#define XCFA_ERROR_OFFSET 0x008 /**< Error */
#define XCFA_IRQ_EN_OFFSET 0x00C /**< IRQ Enable */
#define XCFA_VERSION_OFFSET 0x010 /**< Version */
#define XCFA_SYSDEBUG0_OFFSET 0x014 /**< System Debug 0 */
#define XCFA_SYSDEBUG1_OFFSET 0x018 /**< System Debug 1 */
#define XCFA_SYSDEBUG2_OFFSET 0x01C /**< System Debug 2 */
/* Timing control registers */
#define XCFA_ACTIVE_SIZE_OFFSET 0x020 /**< Active Size (V x H) */
/* Core specific registers offset */
#define XCFA_BAYER_PHASE_OFFSET 0x100 /**< Bayer_phase RW user register */
/*@}*/
/** @name Control register bit mask definition
* @{
*/
#define XCFA_CTL_SW_EN_MASK 0x00000001 /**< Enable Mask */
#define XCFA_CTL_RUE_MASK 0x00000002 /**< Register Update Mask */
#define XCFA_CTL_BPE_MASK 0x00000010 /**< Bypass Mask */
#define XCFA_CTL_TPE_MASK 0x00000020 /**< Test pattern Mask */
#define XCFA_CTL_AUTORESET_MASK 0x40000000 /**< Software Reset -
* Auto-synchronize to SOF
* Mask */
#define XCFA_CTL_RESET_MASK 0x80000000 /**< Software Reset -
* Instantaneous Mask */
/*@}*/
/** @name Interrupt Register Bit Masks. It is applicable for
* Status and Irq_Enable Registers
* @{
*/
#define XCFA_IXR_PROCS_STARTED_MASK 0x00000001 /**< Process Started
* Mask */
#define XCFA_IXR_EOF_MASK 0x00000002 /**< End-Of-Frame Mask */
#define XCFA_IXR_SE_MASK 0x00010000 /**< Slave Error Mask */
#define XCFA_IXR_ALLINTR_MASK 0x00010003 /**< Interrupt All Error Mask
* (ORing of all
* Interrupt Mask) */
/*@}*/
/** @name Error Register bit mask definitions
* @{
*/
#define XCFA_ERR_EOL_EARLY_MASK 0x00000001 /**< Error: End of line
* Early Mask */
#define XCFA_ERR_EOL_LATE_MASK 0x00000002 /**< Error: End of line
* Late Mask */
#define XCFA_ERR_SOF_EARLY_MASK 0x00000004 /**< Error: Start of frame
* Early Mask */
#define XCFA_ERR_SOF_LATE_MASK 0x00000008 /**< Error: Start of frame
* Late Mask */
/*@}*/
/** @name Version register bit definition and shifts
* @{
*/
#define XCFA_VER_REV_NUM_MASK 0x000000FF /**< Revision Number Mask */
#define XCFA_VER_PID_MASK 0x00000F00 /**< Patch ID Mask */
#define XCFA_VER_MINOR_MASK 0x00FF0000 /**< Version Minor Mask */
#define XCFA_VER_MAJOR_MASK 0xFF000000 /**< Version Major Mask */
#define XCFA_VER_REV_MASK 0x0000F000 /**< Version revision Mask */
#define XCFA_VER_MAJOR_SHIFT 24 /**< Version Major Shift */
#define XCFA_VER_MINOR_SHIFT 16 /**< Version Minor Shift */
#define XCFA_VER_INTERNAL_SHIFT 8 /**< Version Internal Shift */
#define XCFA_VER_REV_SHIFT 12 /**< Version Revision Shift */
/*@}*/
/** @name Active size register bit mask definition and shifts
* @{
*/
#define XCFA_ACTSIZE_NUM_PIXEL_MASK 0x00001FFF /**< Active size
* Mask */
#define XCFA_ACTSIZE_NUM_LINE_MASK 0x1FFF0000 /**< Number of Active
* lines per
* Frame
* (Vertical) */
#define XCFA_ACTSIZE_NUM_LINE_SHIFT 16 /**< Active size
* Shift */
/*@}*/
/** @name Bayer Phase
* @{
*/
#define XCFA_BAYER_PHASE_MASK 0x00000003 /**< Bayer Phase Mask */
/*@}*/
/** @name General purpose masks
* @{
*/
#define XCFA_8_BIT_MASK 0x0FF /**< Generic 8 bit Mask */
/*@}*/
/** @name Backward compatibility macros
* @{
*/
#define CFA_CONTROL XCFA_CONTROL_OFFSET
#define CFA_STATUS XCFA_STATUS_OFFSET
#define CFA_ERROR XCFA_ERROR_OFFSET
#define CFA_IRQ_EN XCFA_IRQ_EN_OFFSET
#define CFA_VERSION XCFA_VERSION_OFFSET
#define CFA_SYSDEBUG0 XCFA_SYSDEBUG0_OFFSET
#define CFA_SYSDEBUG1 XCFA_SYSDEBUG1_OFFSET
#define CFA_SYSDEBUG2 XCFA_SYSDEBUG2_OFFSET
#define CFA_ACTIVE_SIZE XCFA_ACTIVE_SIZE_OFFSET
#define CFA_BAYER_PHASE XCFA_BAYER_PHASE_OFFSET
#define CFA_CTL_EN_MASK XCFA_CTL_SW_EN_MASK
#define CFA_CTL_RUE_MASK XCFA_CTL_RUE_MASK
#define CFA_CTL_CS_MASK XCFA_CTL_CS_MASK
#define CFA_RST_RESET XCFA_CTL_RESET_MASK
#define CFA_RST_AUTORESET XCFA_CTL_AUTORESET_MASK
#define CFA_In32 XCfa_In32
#define CFA_Out32 XCfa_Out32
#define CFA_ReadReg XCfa_ReadReg
#define CFA_WriteReg XCfa_WriteReg
/*@}*/
/** @name Interrupt Enable and Status Registers Offsets
* @{
*/
/**
* Interrupt status register generates a interrupt if the corresponding bits of
* interrupt enable register bits are set.
*/
#define XCFA_ISR_OFFSET XCFA_STATUS_OFFSET /**< Interrupt Status Offset */
#define XCFA_IER_OFFSET XCFA_IRQ_EN_OFFSET /**< Interrupt Enable Offset */
/*@}*/
/***************** Macros (Inline Functions) Definitions *********************/
#define XCfa_In32 Xil_In32 /**< Cfa Input Operation. */
#define XCfa_Out32 Xil_Out32 /**< Cfa Output Operation. */
/*****************************************************************************/
/**
*
* This function macro reads the given register.
*
* @param BaseAddress is the base address of the CFA core.
* @param RegOffset is the register offset of the core (defined at
* top of this file).
*
* @return The 32-bit value of the register.
*
* @note C-style signature:
* u32 XCfa_ReadReg(u32 BaseAddress, u32 RegOffset)
*
******************************************************************************/
#define XCfa_ReadReg(BaseAddress, RegOffset) \
XCfa_In32((BaseAddress) + (u32)(RegOffset))
/*****************************************************************************/
/**
*
* This function macro writes the given register.
*
* @param BaseAddress is the base address of the CFA core.
* @param RegOffset is the register offset of the core (defined at
* top of this file).
* @param Data is the 32-bit value to write into the register.
*
* @return None.
*
* @note C-style signature:
* void XCfa_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data)
*
******************************************************************************/
#define XCfa_WriteReg(BaseAddress, RegOffset, Data) \
XCfa_Out32((BaseAddress) + (u32)(RegOffset), (Data))
/**************************** Type Definitions *******************************/
/************************** Function Prototypes ******************************/
/************************** Variable Declarations ****************************/
#ifdef __cplusplus
}
#endif
#endif /* End of protection macro */

View file

@ -0,0 +1,208 @@
/******************************************************************************
*
* (c) Copyright 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa_intr.c
*
* This file contains interrupt related functions of the CFA core.
* Please see xcfa.h for more details of the core.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------------------
* 7.0 adk 01/07/14 First release.
* Implemented the following functions:
* XCfa_IntrHandler, XCfa_SetCallBack.
* </pre>
*
******************************************************************************/
/***************************** Include Files *********************************/
#include "xcfa.h"
/************************** Constant Definitions *****************************/
/***************** Macros (Inline Functions) Definitions *********************/
/**************************** Type Definitions *******************************/
/************************** Function Prototypes ******************************/
/************************** Variable Definitions *****************************/
/************************** Function Definitions *****************************/
/*****************************************************************************/
/**
*
* This function is the interrupt handler for the CFA core.
*
* This handler reads the pending interrupt from the STATUS register,
* determines the source of the interrupts and calls the respective
* callbacks for the interrupts that are enabled in IRQ_ENABLE register,
* and finally clears the interrupts.
*
* The application is responsible for connecting this function to the interrupt
* system. Application beyond this core is also responsible for providing
* callbacks to handle interrupts and installing the callbacks using
* XCfa_SetCallBack() during initialization phase.
*
* @param InstancePtr is a pointer to the XCfa instance that just
* interrupted.
*
* @return None.
*
* @note Interrupt interface should be enabled.
*
******************************************************************************/
void XCfa_IntrHandler(void *InstancePtr)
{
u32 PendingIntr;
u32 ErrorStatus;
XCfa *XCfaPtr = NULL;
XCfaPtr = (XCfa *)((void *)InstancePtr);
/* Verify arguments. */
Xil_AssertVoid(XCfaPtr != NULL);
Xil_AssertVoid(XCfaPtr->IsReady == (u32)(XIL_COMPONENT_IS_READY));
Xil_AssertVoid(XCfaPtr->Config.HasIntcIf != (u16)0x0);
/* Get pending interrupts */
PendingIntr = (u32)XCfa_IntrGetPending(XCfaPtr);
/* A Slave Error interrupt has happened. */
if (((PendingIntr) & (XCFA_IXR_SE_MASK)) ==
((XCFA_IXR_SE_MASK))) {
ErrorStatus = (PendingIntr) & ((u32)XCFA_IXR_SE_MASK);
XCfaPtr->ErrCallBack(XCfaPtr->ErrRef, ErrorStatus);
}
/* A processing start has happened */
if (((PendingIntr) & (XCFA_IXR_PROCS_STARTED_MASK)) ==
(XCFA_IXR_PROCS_STARTED_MASK)) {
XCfaPtr->ProcStartCallBack(XCfaPtr->ProcStartRef);
}
/* A frame done interrupt has happened */
if (((PendingIntr) & (XCFA_IXR_EOF_MASK)) ==
(XCFA_IXR_EOF_MASK)) {
XCfaPtr->FrameDoneCallBack(XCfaPtr->FrameDoneRef);
}
/* Clear pending interrupt(s) */
XCfa_IntrClear(XCfaPtr, PendingIntr);
}
/*****************************************************************************/
/**
*
* This routine installs an asynchronous callback function for the given
* HandlerType:
*
*<pre>
* HandlerType Callback Function Type
* ----------------------- -----------------------------------
* XCFA_HANDLER_FRAMEDONE FrameDoneCallBack
* XCFA_HANDLER_PROCSTART ProcStartCallBack
* XCFA_HANDLER_ERROR ErrCallBack
*
* </pre>
*
* @param InstancePtr is a pointer to the XCfa instance to be worked on.
* @param HandlerType specifies which callback is to be attached.
* @param CallBackFunc is the address of the callback function.
* @param CallBackRef is a user data item that will be passed to the
* callback function when it is invoked.
*
* @return
* - XST_SUCCESS when handler is installed.
* - XST_INVALID_PARAM when HandlerType is invalid.
*
* @note Invoking this function for a handler that already has been
* installed replaces it with the new handler.
*
******************************************************************************/
int XCfa_SetCallBack(XCfa *InstancePtr, u32 HandlerType,
void *CallBackFunc, void *CallBackRef)
{
int Status;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady ==
(u32)(XIL_COMPONENT_IS_READY));
Xil_AssertNonvoid(CallBackFunc != NULL);
Xil_AssertNonvoid(CallBackRef != NULL);
Xil_AssertNonvoid((HandlerType >= (u32)(XCFA_HANDLER_PROCSTART)) &&
(HandlerType <= (u32)(XCFA_HANDLER_ERROR)));
/* Calls the respective callbacks according to handler type */
switch (HandlerType) {
case (XCFA_HANDLER_PROCSTART):
InstancePtr->ProcStartCallBack =
(XCfa_CallBack)((void *)CallBackFunc);
InstancePtr->ProcStartRef = CallBackRef;
Status = (XST_SUCCESS);
break;
case (XCFA_HANDLER_FRAMEDONE):
InstancePtr->FrameDoneCallBack =
(XCfa_CallBack)((void *)CallBackFunc);
InstancePtr->FrameDoneRef = CallBackRef;
Status = (XST_SUCCESS);
break;
case (XCFA_HANDLER_ERROR):
InstancePtr->ErrCallBack =
(XCfa_ErrorCallBack)((void *)CallBackFunc);
InstancePtr->ErrRef = CallBackRef;
Status = (XST_SUCCESS);
break;
default:
Status = (XST_INVALID_PARAM);
break;
}
return Status;
}

View file

@ -0,0 +1,110 @@
/******************************************************************************
*
* (c) Copyright 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa_selftest.c
*
* This file contains the self-test functions for the CFA core.
* The self test function reads the Version register.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------- -------- ----------------------------------------------
* 7.0 adk 01/07/14 First Release
* Implemented XCfa_SelfTest function.
* </pre>
*
******************************************************************************/
/***************************** Include Files *********************************/
#include "xcfa.h"
#include "xstatus.h"
/************************** Constant Definitions *****************************/
/***************** Macros (Inline Functions) Definitions *********************/
/**************************** Type Definitions *******************************/
/************************** Function Prototypes ******************************/
/************************** Variable Definitions *****************************/
/************************** Function Definitions *****************************/
/*****************************************************************************/
/**
*
* This function reads complete Version register of CFA core and compares
* with zero values as part of self test.
*
* @param InstancePtr is a pointer to the XCfa instance to be worked
* on.
*
* @return
* - XST_SUCCESS if the Version register read test was successful.
* - XST_FAILURE if the Version register read test failed.
*
* @note None.
*
******************************************************************************/
int XCfa_SelfTest(XCfa *InstancePtr)
{
u32 Version;
int Status;
/* Verify arguments. */
Xil_AssertNonvoid(InstancePtr != NULL);
/* Read CFA core version register. */
Version = XCfa_ReadReg(InstancePtr->Config.BaseAddress,
(XCFA_VERSION_OFFSET));
/* Compare version with zero. */
if (Version != (u32)0x0) {
Status = (XST_SUCCESS);
}
else {
Status = (XST_FAILURE);
}
return Status;
}

View file

@ -0,0 +1,107 @@
/******************************************************************************
*
* (c) Copyright 2014 Xilinx, Inc. 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.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* 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
* XILINX CONSORTIUM 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.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcfa_sinit.c
*
* This file contains static initialization methods for Xilinx CFA core.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ------ -------- -----------------------------------------------
* 7.0 adk 01/07/14 First release.
* Implemented XCfa_LookupConfig function.
* </pre>
*
******************************************************************************/
/***************************** Include Files *********************************/
#include "xcfa.h"
#include "xparameters.h"
/************************** Constant Definitions *****************************/
/**************************** Type Definitions *******************************/
/***************** Macros (Inline Functions) Definitions *********************/
/************************** Function Prototypes ******************************/
/************************** Variable Declaration *****************************/
/************************** Function Definitions *****************************/
/*****************************************************************************/
/**
*
* This function returns a reference to an XCfa_Config structure
* based on the unique device id, <i>DeviceId</i>. The return value will refer
* to an entry in the device configuration table defined in the xcfa_g.c file.
*
* @param DeviceId is the unique device ID of the core for the lookup
* operation.
*
* @return CfgPtr is a reference to a config record in the
* configuration table (in xcfa_g.c) corresponding to
* <i>DeviceId</i>, or NULL if no match is found.
*
* @note None.
*
******************************************************************************/
XCfa_Config *XCfa_LookupConfig(u16 DeviceId)
{
extern XCfa_Config XCfa_ConfigTable[XPAR_CFA_NUM_INSTANCES];
u32 Index;
XCfa_Config *CfgPtr = NULL;
/* To get the reference pointer to XCfa_Config structure */
for (Index = (u32)0x0; Index < (u32)(XPAR_CFA_NUM_INSTANCES);
Index++) {
/* Compare device Id with configTable's device Id */
if (XCfa_ConfigTable[Index].DeviceId == DeviceId) {
CfgPtr = &XCfa_ConfigTable[Index];
break;
}
}
return (XCfa_Config *)CfgPtr;
}