|
@@ -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
|