PCIe FPGA loading: Difference between revisions

From ArmadeusWiki
mNo edit summary
(Blanked the page)
Tag: Blanking
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:FPGA]]
{{Under_Construction}}
== Introduction ==


On APF6_SP it's possible to use the PCI express bus to configure fpga (cycloneV). This article describe how to do that.
== Generate files ==
=== Quartus configuration ===
Your design must include the PCIe and CvP components. Once the project synthesized, open the menu
<pre class="config">
File -> Convert Programming Files ...
</pre>
* In '''Output programming file''' select the '''programming file type:''' Raw Binary File (.rbf).
* In '''Input files to convert''' clic on '''Add Files...''' and add your binary.sof file.
* In '''Output programming file''' check the option Create CvP files (Generate binary.periph.rbf and binary.core.rbf)
* Click on '''Generate'''
You will get two files :
* '''binary.periph.rbf''': peripheral config file to be loaded via serial config bus with uboot
* '''binary.core.rbf''': core config file to be loaded via PCIe bus with Linux.
=== Linux configuration ===
== Configure the FPGA ==
=== Peripheral configuration in uboot ===
PCIe must be activated before Linux boot. To do that, just load the peripheral bitstream with uboot :
<pre class="apf">
BIOS> tftpboot ${loadaddr} 192.168.0.117:binary.periph.rbf
BIOS> fpga load 0 ${loadaddr} ${filesize}
</pre>
Then boot Linux:
<pre class="apf">
BIOS> boot
</pre>
=== Core configuration in Linux ===
The PCIe device must be seen in lspci command in Linux :
<pre class="apf">
# lspci
00:00.0 PCI bridge: Device 16c3:abcd (rev 01)
01:00.0 Unclassified device [0013]: Altera Corporation Device e001 (rev 01)
</pre>
== Links ==

Latest revision as of 14:45, 3 October 2025