Linux FPGA Manager driver creates /sys/class/fpga_manager/<fpga> folder, which contains file attributes that provides control and state.
- firmware : /sys/class/fpga_manager/<fpga>/firmware firmware attribute requests an fpga image using the firmware class, then write output to the FPGA
- flags: /sys/class/fpga_manager/<fpga>/flags flags attribute determines the type of Bitstream 0 - Full Bitstream 1 - Partial Bitstream (default: 0)
- state : /sys/class/fpga_manager/<fpga>/state state attribute is a superset of FPGA states and FPGA Manager driver states
- name : /sys/class/fpga_manager/<fpga>/name name attribute is name of the low level FPGA Manager driver
- key : /sys/class/fpga_manager/<fpga>/key key attribute stores the key value useful for Encrypted Bitstream loading to read the userkey
Steps for programming the Full Bitstream
S et flags for Full Bitstream
- echo 0 > /sys/class/fpga_manager/fpga0/flags
Load the Bitstream
-
mkdir -p /lib/firmware
-
cp /media/design_1_wrapper.bit.bin /lib/firmware/
-
echo design_1_wrapper.bit.bin > /sys/class/fpga_manager/fpga0/firmware
Steps for programming the Partial Bitstream
S et flags for Partial Bitstream
- echo 1 > /sys/class/fpga_manager/fpga0/flags
Load the Bitstream Partial Bitstream
-
mkdir -p /lib/firmware
-
cp /media/partail_wrapper.bit.bin /lib/firmware/
-
echo partail_wrapper.bit.bin > /sys/class/fpga_manager/fpga0/firmware