...
...
...
LED[7:0] | Status |
---|---|
LED[7] | SW5 External Reset Button (0x0=normal,0x1=reset) |
LED[6] | Firmware Interface Reset (0x0=normal,0x1=reset) |
LED[5] | PgpTx.LinkReady |
LED[4] | PgpTx.PhyReady |
LED[3] | PgpRx.RemLinkReady |
LED[2] | PgpRx.LinkDown |
LED[1] | PgpRx.LinkReady |
LED[0] | PgpRx.PhyReady |
...
First download the project from git. Requires git >= x.x.x and lfs.
> git lfs install
...
github:
Code Block | ||
---|---|---|
| ||
$ 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.tgz1
...
A pre-compiled image is included in:
dev-board-examples-v1.0.0/firmware/targets/XilinxKC705DevBoard/Kc705Pgp/images/Kcu105Pgp-0x000000010x00000002-2017033010590920170616142840-ruckman-dirty16b93ce.bit.gz
Uncompress Decompress the bit file with:> gzip -d Kcu105Pgp-0x00000001-20170330105909
Code Block | ||
---|---|---|
| ||
$ gzip -d Kcu105Pgp-0x00000002-20170616142840-ruckman- |
...
16b93ce.bit.gz |
and load into the evaluation board using vivado.Vivado's Hardware Manager
...
Compile the project. Requires linux Linux and vivado Vivado 2016.4> cd
Code Block | ||
---|---|---|
| ||
$ 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.
Download the driver package from github.com
$ make
# The output will be in the images directory. |
...
Code Block | ||
---|---|---|
| ||
# 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 # Update the permissions to the device such that # you won't need sudo access to run the software application $ sudo chmod 666 /dev/pgpcard_* # 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") |
...
To compile the test software go to the following directory in the firmware download:
Code Block | ||
---|---|---|
| ||
$ cd dev-board-examples-v1.0.0/software/standalone/ |
Edit the following line in the Makefile to point to the location of the aes stream driver directory:
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
$ make |
Code Block | ||
---|---|---|
| ||
# First dump the status register. This will include the firmware version and build string:
$ bin/dumpStatus
FwVersion = 0x00000001
BuildStamp = Kcu105Pgp: Vivado v2016.4, x86_64, Built Wed May 3 13:52:04 PDT 2017 by rherbst
HeartBeat = 0x00000000
Scratchpad = 0x00000000
PRBS Length = 255
# In one terminal start the data dump process:
$ bin/dumpData
# In another terminal start the routine which periodically writes a register to generate a data frame:
$ bin/genData
# The output of the dumpData terminal show show:
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
Got Data. Size=1024, error=0
... |
...
Git hub repositories for firmware and drivers:
Information about the register access protocol used in the CPIX camera and development board:
...
Ryan Herbst
rherbst@slac.stanford.edu
Office: 650-926-4911
Mobile: 408-489-6582