Git Product home page Git Product logo

xvc_pcie's Introduction

Linux Driver for Xilinx XVC Over PCIe
=====================================

August 25, 2017

Contents
========

- Considerations Before Building
- Building and Installation
- Initial Testing and Verification
- Unloading and Uninstalling the Driver

Considerations Before Building
==============================

If you would like to customize this driver for your specific PCIe application, 
please take a look at xvc_pcie_user_config.h.  This header file provides 
instructions for how to modify driver variables to target specific use cases.
These variables are then included in the driver at compile time.

Many of the commands involved in the build and installation process will 
require root privileges.  It is recommended to perform the build and 
installation with full root privileges as the root user as opposed to using the
"sudo" command.

Any drivers that might conflict with this driver should be uninstalled or
removed from the system before installing this driver.

Building and Installation
=========================

To build this driver:

1. Modify the variables within xvc_pcie_user_config.h to match your hardware 
   design and IP settings. Consider modifying the 
   following variables.
       PCIE_VENDOR_ID:  PCIe Vendor ID defined in the PCIe IP customization.
       PCIE_DEVICE_ID:  PCIe Device ID defined in the PCIe IP customization.
       config_vsec_id:  XVC-VSEC ID defined in the Debug Bridge IP for the
                        "PCIe-to-BSCAN" mode.
       config_vsec_rev: XVC-VSEC ID defined in the Debug Bridge IP for the
                        "PCIe-to-BSCAN" mode.
       bar_index:       PCIe-BAR that should be used to access the Debug Bridge
                        IP for "AXI-to-BSCAN" mode. This BAR index is specified
                        as a combination of PCIe IP customization and the 
                        addressable AXI peripherals in your system design.
       bar_offset:      PCIe-BAR Offset that should be used to access the Debug
                        Bridge IP for "AXI-to-BSCAN" mode. This BAR offset is
                        specified as a combination of PCIe IP customization and
                        the addressable AXI peripherals in your system design. 

2. Move the source files to the directory of your choice.  For example, use 
   /home/username/xil_xvc or /usr/local/src/xil_xvc.

3. Change to the directory containing the driver source files.

      # cd /driver_vX.X/

4. Compile the driver module:

      # make install

   The kernel module object file will be installed as:

      /lib/modules/[KERNEL_VERSION]/kernel/drivers/pci/pcie/xilinx/xil_xvc_driver.ko

5. Run depmod to pick up newly installed kernel module:

      # depmod -a

6. Make sure no older version of the driver are loaded:

      # modprobe -r xilinx_xvc_pci_driver

7. Load the module:

      # modprobe xilinx_xvc_pci_driver

   You should at least see the message if you run the "dmesg" command:

      "kernel: xil_xvc_driver: Starting..."

   NOTE: You can also use insmod on the kernel object file to load the module:

      # insmod xil_xvc_driver.ko

   but this is not recommended unless necessary for compatibility with older 
   kernels.

8. The resulting character file, /dev/xil_xvc/cfg_ioc0, will be owned by user 
   root and group root, and it will have 660 permissions.  Make sure the 
   character file has the appropriate permissions to allow access to the 
   application interacting with it.

Initial Testing and Verification
================================

1. Build the simple test program for the driver:

      # make test

2. Run the test program:

      ./driver_test/verify_xil_xvc_driver

   You should see various successful tests of differing lengths, followed by 
   the message:

      "XVC PCIE Driver Verified Successfully!"

Unloading and Uninstalling the Driver
=====================================

1. Unload the kernel module:

      # modprobe -r xil_xvc_driver

   NOTE: You can also use rmmod to unload the kernel module:

      # rmmod xil_xvc_driver

   but this is not recommended unless necessary for compatibility with older 
   kernels.

2. From the directory containing the source files, make clean and uninstall:

      # make clean uninstall

   This will remove the compiled driver from the sources directory as well as 
   uninstall it from its location in /lib/modules/[KERNEL_VERSION].

xvc_pcie's People

Contributors

cyyself avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.