...
...
...
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:
...
A pre-compiled image is included in:
dev-board-examples-v1.0.0/firmware/targets/XilinxKC705DevBoard/Kc705Pgp/images/xxxx.mcsKcu105Pgp-0x00000002-20170616142840-ruckman-16b93ce.bit.gz
Decompress the bit file with:
Code Block | ||
---|---|---|
| ||
$ gzip -d Kcu105Pgp-0x00000002-20170616142840-ruckman-16b93ce.bit.gz |
and load into the evaluation board using Vivado's Hardware Manager
...
Compile the project. Requires linux Linux and vivado Vivado 2016.4
> cd firmware
Our build system requires a local build directory for the compile. You can either
> mkdir build
Or create a link to a scratch area:
Code Block | ||
---|---|---|
| ||
$ cd dev-board-examples-v1.0.0/firmware
# Our build system requires a local build directory for the compile. You 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. I.E. images/.mcs
$ 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.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
# 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
# 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