Data Plane Development Kit Reference Manual: Intel FPGA Programmable Acceleration Card N3000

ID 683512
Date 12/06/2019
Public
Document Table of Contents

3.1. FPGA Management

The FPGA management engine has different subfeatures to enable different functionality such as thermal monitoring and error reporting.

The struct feature_driver fme_feature_drvs[] in $RTE_SDK/ifpga/base/ifpga_feature_dev.c initializes all the subfeatures that FPGA management engine supports. Each of these subfeatures enables a set of operations. The operations have their own data structures defined in $RTE_SDK/ifpga/base/ifpga_fme.c.

The ifpga_fme_hw data structure stores this information.

struct ifpga_fme_hw {
	enum ifpga_fme_state state;
	struct ifpga_feature_list feature_list;
	spinlock_t lock; /* protect hardware access */
	void *parent; /* pointer to ifpga_hw */
	/* provided by HEADER feature */
	u32 port_num;
	struct uuid bitstream_id;
	u64 bitstream_md;
	size_t pr_bandwidth;
	u32 socket_id;
	u32 fabric_version_id;
	u32 cache_size;
	u32 capability;
	};