Confluence will be unusable 23-July-2024 at 06:00 due to a Crowd upgrade.
First download the project from github:
$ 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/Kcu105Pgp-0x00000001-20170503135204-rherbst-123de18.bit.gz
Decompress the bit file with:
$ gzip -d Kcu105Pgp-0x00000001-20170503135204-rherbst-123de18.bit.gz
and load into the evaluation board using Vivado's Hardware Manager
Compile the project. Requires Linux and Vivado 2016.4
$ 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.
# 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:
$ 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:
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:
$ make
# 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