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

ID 683512
Date 12/06/2019
Document Table of Contents
Give Feedback

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;