mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
fpga: mgr: add status for fpga-manager
This patch adds status sysfs interface for fpga manager, it's a read only interface which allows user to get fpga manager status, including full/partial reconfiguration error and other status information. It adds a status callback to fpga_manager_ops too, allows each fpga_manager driver to define its own method to collect latest status from hardware. The following sysfs file is created: * /sys/class/fpga_manager/<fpga>/status Return status of fpga manager, including reconfiguration errors. Signed-off-by: Wu Hao <hao.wu@intel.com> Acked-by: Alan Tull <atull@kernel.org> Acked-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
571d78bd45
commit
ecb5fbe299
3 changed files with 61 additions and 0 deletions
|
@ -101,6 +101,7 @@ struct fpga_image_info {
|
|||
* struct fpga_manager_ops - ops for low level fpga manager drivers
|
||||
* @initial_header_size: Maximum number of bytes that should be passed into write_init
|
||||
* @state: returns an enum value of the FPGA's state
|
||||
* @status: returns status of the FPGA, including reconfiguration error code
|
||||
* @write_init: prepare the FPGA to receive confuration data
|
||||
* @write: write count bytes of configuration data to the FPGA
|
||||
* @write_sg: write the scatter list of configuration data to the FPGA
|
||||
|
@ -115,6 +116,7 @@ struct fpga_image_info {
|
|||
struct fpga_manager_ops {
|
||||
size_t initial_header_size;
|
||||
enum fpga_mgr_states (*state)(struct fpga_manager *mgr);
|
||||
u64 (*status)(struct fpga_manager *mgr);
|
||||
int (*write_init)(struct fpga_manager *mgr,
|
||||
struct fpga_image_info *info,
|
||||
const char *buf, size_t count);
|
||||
|
@ -126,6 +128,13 @@ struct fpga_manager_ops {
|
|||
const struct attribute_group **groups;
|
||||
};
|
||||
|
||||
/* FPGA manager status: Partial/Full Reconfiguration errors */
|
||||
#define FPGA_MGR_STATUS_OPERATION_ERR BIT(0)
|
||||
#define FPGA_MGR_STATUS_CRC_ERR BIT(1)
|
||||
#define FPGA_MGR_STATUS_INCOMPATIBLE_IMAGE_ERR BIT(2)
|
||||
#define FPGA_MGR_STATUS_IP_PROTOCOL_ERR BIT(3)
|
||||
#define FPGA_MGR_STATUS_FIFO_OVERFLOW_ERR BIT(4)
|
||||
|
||||
/**
|
||||
* struct fpga_manager - fpga manager structure
|
||||
* @name: name of low level fpga manager
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue