Skip to content

Commit fd97414

Browse files
committed
docs: update documentation of NDK-FPGA
1 parent efbfc6a commit fd97414

File tree

17 files changed

+158
-153
lines changed

17 files changed

+158
-153
lines changed

cards/napatech/nt200a02/readme.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.. _card_napatech_nt200a02:
22

33
Napatech NT200A02
4-
--------------
4+
-----------------
55

66
- Card information:
77
- Vendor: Napatech
@@ -30,7 +30,7 @@ NDK firmware support
3030
- OR use JTAG (see "JTAG programming" below).
3131

3232
JTAG programming
33-
^^^^^^^^^^^^^^^^^^^^^^
33+
^^^^^^^^^^^^^^^^
3434

3535
1. Buld the firmware using ``make`` as described above ("Generate bitstream" using Vivado GUI flow)
3636
2. Connect USB cable to the JTAG interface of the card

cards/silicom/fb2cdg1/readme.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.. _card_fb2cdg1:
22

33
Silicom fb2CDg1\@AGM39D-2
4-
------------------------
4+
-------------------------
55

66
- Card information:
77
- Vendor: Silicom

cards/terasic/a2700/readme.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.. _card_terasic-a2700:
22

33
Terasic A2700
4-
----------------
4+
-------------
55

66
- Card information:
77
- Vendor: Terasic
@@ -38,8 +38,10 @@ NDK firmware support
3838

3939
Boot instructions (initial)
4040
^^^^^^^^^^^^^^^^^^^^^^^^^^^
41+
4142
Supported boot is handled by the Secure Device Manager (SDM), which has its own 1Gb flash to store Factory and User defined image.
4243
To enable this method, it is necessary to set the switches on the board as follows:
44+
4345
- Ensure that the MSEL[2:0] switch on the board is set to 'Active Serial Normal' mode - MSEL[2:0] = 3'b011
4446
- Set SW4 to 2'b01 and SW5 to 2'b10.
4547
- The SW4(1) set to 0 to load user image or to 1 to load factory image after power up.

comp/debug/data_logger/readme.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ Package can be installed using this command:
183183
* You also need to install ``python nfb`` package
184184

185185
.. code-block::
186+
186187
python3 -m pip install --upgrade pip
187188
188189
# Install nfb:
@@ -199,7 +200,6 @@ Example usage of ``logger_stats`` (for more usage see `mem_logger/mem_logger.py`
199200

200201
.. code-block::
201202
202-
203203
import logger_stats as Stats
204204
from data_logger.data_logger import DataLogger
205205

comp/debug/streaming_debug/readme.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,14 @@ The typical connection of the Debug Probes is shown in the following diagram.
5353

5454
Debug Master
5555
------------
56+
5657
The Debug Master component is connected to the MI bus and one or more Probes.
5758
It accepts commands through the MI bus to control the Probes or read statistical data.
5859
The module contains counters that increment according to signals received from each Probe (one counter - of each type - per Probe).
5960

6061
Counters
6162
~~~~~~~~
63+
6264
Six types of counters are available in the Debug Master for each Debug Probe.
6365
Each can be disabled/enabled by generic parameters: "E" or "e" to "enable"; anything else will translate as "disable".
6466

@@ -71,6 +73,7 @@ Each can be disabled/enabled by generic parameters: "E" or "e" to "enable"; anyt
7173

7274
Debug Probes
7375
------------
76+
7477
Each Probe has three interfaces:
7578

7679
- `RX` - connect signals on the interface of the previous component in the pipeline.
@@ -95,6 +98,7 @@ Each Probe is identified by:
9598

9699
Bus control
97100
-----------
101+
98102
When this "advanced" feature is enabled, the user can halt or discard the traffic flowing through a selected Probe.
99103
To utilize this feature, the Probe must be inserted into the pipeline as shown in the :ref:`second diagram <figure2>`.
100104
And for each Probe, it has to be enabled using the `BUS_CONTROL` generic parameter.
@@ -110,6 +114,7 @@ This sets the requested Probe to:
110114

111115
Usage
112116
-----
117+
113118
Use the `nfb-busdebugctl` tool for easy control of the whole Streaming Debug system.
114119
For more info, see the tool's documentation.
115120

@@ -120,7 +125,7 @@ Entities
120125
121126
.. vhdl:autoentity:: STREAMING_DEBUG_PROBE_MFB
122127
123-
.. rubrica:: Footnotes
128+
.. rubric:: Footnotes
124129

125130
.. [#f1] The monitored signals are expected to be negated.
126131

comp/mfb_tools/edit/frame_prepender/mfb_mvb_prepender.vhd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ use work.type_pack.all;
2929
--
3030
-- .. warning::
3131
--
32-
-- Does not meet timing constrains with MFB_REGIONS=4!
32+
-- Does not meet timing constrains with MFB_REGIONS=4!
3333
--
3434
-- .. note::
3535
--
36-
-- Resource consumption increases with the :vhdl:genconstant:`MVB_ITEM_SIZE <MFB_MVB_PREPENDER.MVB_ITEM_SIZE>`
37-
-- generic! (Or more precisely, with the MAX_PREPEND_REGIONS constant, which depends on this generic.)
36+
-- Resource consumption increases with the :vhdl:genconstant:`MVB_ITEM_SIZE <MFB_MVB_PREPENDER.MVB_ITEM_SIZE>`
37+
-- generic! (Or more precisely, with the MAX_PREPEND_REGIONS constant, which depends on this generic.)
3838
--
3939
entity MFB_MVB_PREPENDER is
4040
generic (

core/doc/devtree.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The DT blob is located in the PCI configuration space. A custom extension (PCIe
2626
Example of DTS of one component
2727
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2828

29-
.. code-block:: dts
29+
.. code-block::
3030
3131
/*
3232
* ref_name: instance name, typically populated by the parent module when needed
@@ -58,7 +58,7 @@ Example of DTS of one component
5858
Example of generated DTS for FPGA card
5959
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6060

61-
.. code-block:: dts
61+
.. code-block::
6262
6363
/dts-v1/;
6464

core/doc/how_to_start.rst

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ List of make parameters:
2828

2929
- ``PCIE_CONF`` -- Allows you to set the PCIe configuration, for example: ``make PCIE_CONF=1xGen4x16``. More information can be found in the :ref:`documentation of the PCIe module <ndk_pcie_mod>`.
3030
- ``DMA_TYPE`` -- Allows you to select the DMA controller, for example ``make DMA_TYPE=4``. More information and allowed values can be found in the :ref:`documentation of the DMA module <ndk_dma>`.
31-
- ``BOARD_REV`` -- Allows you to set the board revision number, for correct firmware settings. This parameter is not available for all FPGA cards. You can find the allowed values in the NDK documentation for the specific card.
31+
- ``BOARD_VARIANT`` -- Allows you to set the board variant number, for correct firmware settings. This parameter is not available for all FPGA cards. You can find the allowed values in the NDK documentation for the specific card (for example Bittware IA-440i). Alternatively, it may also encounter a similar parameter ``BOARD_REV``.
3232

3333
How to prepare the FPGA card and the host PC
3434
============================================
3535

3636
- The target FPGA card may require proper switch settings. Check the card manufacturer's instructions.
3737
- Plug the target FPGA card into the PCIe slot of the host PC.
38-
- Install `the NDK drivers and tools <https://github.com/CESNET/ndk-sw>`_ on the host PC. `The pre-built .rpm and .deb packages can be found here <https://github.com/CESNET/ndk-sw/releases>`_.
38+
- Install `the NDK drivers and tools <https://github.com/CESNET/ndk-sw>`_ on the host PC. The RPM packages are available in `the NDK Copr repository <https://copr.fedorainfracloud.org/coprs/g/CESNET/nfb-framework/>`_. Alternatively, `the pre-built .rpm and .deb packages can be found here <https://github.com/CESNET/ndk-sw/releases>`_.
3939

4040
.. WARNING::
4141
The FPGA card and its firmware are designed for a specific PCIe generation and a specific number of PCIe lines. If you plug an FPGA card into a slot that does not support such PCIe configuration, you may experience slower data transfer over the PCIe interface or a general malfunction.
@@ -66,24 +66,27 @@ The NDK platform uses the `nfb-info tool <https://cesnet.github.io/ndk-sw/tools/
6666
--------------------------------------- Board info ----
6767
Board name : COMBO-GENERIC
6868
Serial number : 0
69-
Network interfaces : 2
69+
Network interfaces : 1
7070
------------------------------------ Firmware info ----
71-
Card name : N6010
71+
Card name : IA-440I-VAR1
7272
Project name : NDK_MINIMAL
73-
Project variant : 100G2
74-
Project version : 0.5.8
75-
Built at : 2024-02-07 08:45:45
76-
Build tool : Quartus Version 22.4.0 Build 94 12/07/2022 SC Pro Edition
77-
Build author : [email protected]
78-
RX queues : 16
79-
TX queues : 16
80-
ETH channels : 2
73+
Project variant : 400G1
74+
Project version : 0.11.0
75+
Built at : 2025-08-15 12:14:10
76+
Build tool : Quartus Version 25.1.0 Build 129 03/26/2025 SC Pro Edition
77+
Build author : [email protected]
78+
Build revision : 7ba87361
79+
RX queues : 32
80+
TX queues : 32
81+
ETH channels : 1
8182
-------------------------------------- System info ----
8283
PCIe Endpoint 0:
83-
* PCI slot : 0000:17:00.0
84-
* PCI speed : 16 GT/s
84+
* PCI slot : 0000:05:00.0
85+
* PCI link speed : 32 GT/s
8586
* PCI link width : x16
8687
* NUMA node : 0
88+
* MI BAR 0 size : 64 MiB
89+
* MI BAR 2 size : 16 MiB
8790
8891
Further work with the NDK
8992
=========================

core/doc/testing.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,18 @@ Testing R/W access to the scratch registers
2121

2222
The NDK firmware implements 64 32-bit scratch registers for testing purposes. Like other parts of the firmware, they are accessible via the :ref:`MI bus <ndk_mi>`. This address space is (among other things) stored in the :ref:`DeviceTree <ndk_devtree>`. The `nfb-bus tool <https://cesnet.github.io/ndk-sw/tools/nfb-bus.html>`_ can be used for easy R/W access to any register in the firmware that is mapped to the MI bus. The following example shows how to:
2323

24+
- obtain or verify the DeviceTree path of the MI TEST SPACE component in the firmware
2425
- read the first scratch register (the offset is 0x0 in the byte format) in the MI TEST SPACE component (selected using the DeviceTree path),
2526
- write a new value (0x42) to it, and
2627
- read it again.
2728

2829
.. code-block:: bash
2930
30-
$ nfb-bus -p /firmware/mi_bus0/mi_test_space 0x0
31+
$ nfb-bus -l | grep mi_test_space
32+
$ nfb-bus -p /firmware/mi_pci0_bar0/mi_test_space 0x0
3133
00000000
32-
$ nfb-bus -p /firmware/mi_bus0/mi_test_space 0x0 0x42
33-
$ nfb-bus -p /firmware/mi_bus0/mi_test_space 0x0
34+
$ nfb-bus -p /firmware/mi_pci0_bar0/mi_test_space 0x0 0x42
35+
$ nfb-bus -p /firmware/mi_pci0_bar0/mi_test_space 0x0
3436
00000042
3537
3638
You can test R/W requests to the NDK firmware address space of these scratch registers however you want. Similarly, in the future, you can access the registers in your own application that you build on the NDK platform.

0 commit comments

Comments
 (0)