In order to allow binding/unbinding of devices for use by the ntb_rawdev, we need to update the devbind script to add a new class of device, and add device ids for the specific HW instances. And only support Intel Skylake platform right now.
Signed-off-by: Xiaoyun Li <xiaoyun...@intel.com> --- doc/guides/rawdevs/ntb_rawdev.rst | 8 ++++++++ usertools/dpdk-devbind.py | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/doc/guides/rawdevs/ntb_rawdev.rst b/doc/guides/rawdevs/ntb_rawdev.rst index ebc4dbc1e..71496bf44 100644 --- a/doc/guides/rawdevs/ntb_rawdev.rst +++ b/doc/guides/rawdevs/ntb_rawdev.rst @@ -16,6 +16,14 @@ Build Options Toggle compilation of the ``ntb_rawdev`` driver. +Device Setup +------------ + +The Intel NTB devices need to be bound to a DPDK-supported kernel driver +to use, i.e. igb_uio, vfio. The ``dpdk-devbind.py`` script can be used to +show devices status and to bind them to a suitable kernel driver. They will +appear under the category of "Misc (rawdev) devices". + Limitation ---------- diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py index 9e79f0d28..30d75f3f0 100755 --- a/usertools/dpdk-devbind.py +++ b/usertools/dpdk-devbind.py @@ -36,11 +36,15 @@ octeontx2_npa = {'Class': '08', 'Vendor': '177d', 'Device': 'a0fb,a0fc', 'SVendor': None, 'SDevice': None} +intel_ntb_skx = {'Class': '06', 'Vendor': '8086', 'Device': '201c', + 'SVendor': None, 'SDevice': None} + network_devices = [network_class, cavium_pkx, avp_vnic, ifpga_class] crypto_devices = [encryption_class, intel_processor_class] eventdev_devices = [cavium_sso, cavium_tim, octeontx2_sso] mempool_devices = [cavium_fpa, octeontx2_npa] compress_devices = [cavium_zip] +misc_devices = [intel_ntb_skx] # global dict ethernet devices present. Dictionary indexed by PCI address. # Each device within this is itself a dictionary of device properties @@ -595,6 +599,9 @@ def show_status(): if status_dev == "compress" or status_dev == "all": show_device_status(compress_devices , "Compress") + if status_dev == "misc" or status_dev == "all": + show_device_status(misc_devices , "Misc (rawdev)") + def parse_args(): '''Parses the command-line arguments given by the user and takes the @@ -670,6 +677,7 @@ def do_arg_actions(): get_device_details(eventdev_devices) get_device_details(mempool_devices) get_device_details(compress_devices) + get_device_details(misc_devices) show_status() @@ -690,6 +698,7 @@ def main(): get_device_details(eventdev_devices) get_device_details(mempool_devices) get_device_details(compress_devices) + get_device_details(misc_devices) do_arg_actions() if __name__ == "__main__": -- 2.17.1