Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • PGP Generation 3 Card (available from SLAC)

Image Added

Image Added

...

How to connect the PCIe card to the KCU105 board

  • We are using the SFP cage that's closest to the PCIe interface

Image Added

  • When looking at the KCU105, we are connecting to the SFP connected farthest to the left
    Image Added
  • The PGP card has an integrated SFP transceiver.  However, the KCU105 does not.  The SFP module that you plug in the KCU105 board needs to support "850nm" multi-mode fiber optics.  We recommend using "SFP-10GSR-85" from Fiberstore.com.
    Image Added
  • The fiber optic cable between the PGP card and the DEV board needs to support "850nm", multi-mode, OM2 (or OM3) and LC terminated on both sides.

...

Getting Firmware From GIT

First download the project from git. 

> git lfs install

...

github:

Code Block
languagebash
$ git lfs install
$ git clone https://github.com/slaclab/dev-board-examples.git

...


$ cd dev-board-examples

...


$ git submodule init

...


$ git submodule update --recursive

Alternatively you can download a tarball from here:

...

dev-board-examples-v1.0.0/firmware/targets/XilinxKC705DevBoard/Kc705Pgp/images/Kcu105Pgp-0x00000001-2017033010590920170503135204-ruckmanrherbst-dirty123de18.bit.gz

Uncompress Decompress the bit file with:> gzip -d Kcu105Pgp

Code Block
languagebash
$ gzip -d Kcu105Pgp-0x00000001-

...

20170503135204-

...

rherbst-

...

123de18.bit.gz

and load into the evaluation board using vivado.Vivado's Hardware Manager

...

Build Your Own Firmware

Compile the project. Requires linux Linux and vivado Vivado 2016.4> cd

Code Block
languagebash
$ cd dev-board-examples-v1.0.0/firmware

...



# Our build system requires a local build directory for the compile. You

...

> mkdir build

Or create a link to a scratch area:

...

 can either 
$ mkdir build

# Or create a link to a scratch area:
$ ln -s /u/local/build build

...



# Go to the proper target for a KCU105 board with PGP support:

...


$ cd targets/XilinxKC705DevBoard/Kc705Pgp

...



# Build the project:

...

> make

The output will be in the images directory. 

PGPCard Driver

Download the driver package from github.com

...


$ make

# The output will be in the images directory. 

...

PGPCard Driver

Code Block
languagebash
# Download the driver package from github.com
$ wget https://github.com/slaclab/aes-stream-drivers/archive/v1.0.1.tar.gz

...


$ tar -

...

zxvf v1.0.

...

1.

...

go to the pgpcard directory and build the driver:

...

tar.gz

# go to the pgpcard directory and build the driver:
$ cd aes-stream-drivers-1.0.1/pgpcard/driver/

...

> make

You will end up with a file pgpcard.ko

Load the driver as root:

> sudo insmod pgpcard.ko

Verify the card loaded:

...


$ make

# You will end up with a file pgpcard.ko
# Load the driver as root:
$ sudo insmod pgpcard.ko

# Verify the card loaded:
$ cat /proc/pgpcard_0

...

You will see a dump of information. With the eval board image loaded and the board fibers properly connected you should see the following lines:



# Scroll up and you will see a dump of information for "lane 0" like this
-------------- Lane 0 --------------------

...


             LoopBack : 0

...


         LocLinkReady : 1 
         RemLinkReady : 1 
              RxReady : 1
              TxReady : 1
              RxCount : 0
           CellErrCnt : 0
          LinkDownCnt : 1
           LinkErrCnt : 0
              FifoErr : 0
              RemData : 0x00
        RemBuffStatus : 0x00
# "LocLinkReady : 1

...

" means Link up on local side
# "RemLinkReady : 1

...

" means Link up on remote side

# The aes-stream-drivers/include directory will be needed for the next step. 
# Make note of the full directory

...

 path (used for "AES_INCLUDE")

...

Test Software Compile

To compile the test software go to the following directory in the firmware download:> cd dev

Code Block
languagebash
$ cd dev-board-examples-v1.0.0/software/standalone/

Edit the following line in the makefile Makefile to point to the location of the aes stream driver directory:

Code Block
languagebash
Change from: 
	AES_INCLUDE := ../../../aes-stream-drivers-1.0.1/include/

...

  
To full path:
	AES_INCLUDE := $(PATH_TO_AES)/aes-stream-drivers-1.0.1/include/  
Where $(PATH_TO_AES) is your full path

Build the test software:>

Code Block
languagebash
$ make

Run The Test Code

First dump the status register. This will include the firmware version and build string:

...