...
...
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 |
...
...
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-2017050313520420170616142840-rherbstruckman-123de1816b93ce.bit.gz
Decompress the bit file with:
Code Block | ||
---|---|---|
| ||
$ gzip -d Kcu105Pgp-0x000000010x00000002-2017050313520420170616142840-rherbstruckman-123de1816b93ce.bit.gz |
and load into the evaluation board using Vivado's Hardware Manager
...
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") |
...
Code Block | ||
---|---|---|
| ||
$ make |
Code Block | ||
---|---|---|
| ||
# First dump the status register. This will include the firmware version and build string: |
...
$ bin/dumpStatus |
...
The output should look like:
...
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