idxd: Add definitions for missing registers to spec header

Change-Id: Ie3ddc6fd0b5e3b10bc13fb0edf212d097d75bc94
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11434
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Ben Walker 2022-02-02 10:38:19 -07:00 committed by Jim Harris
parent dbdd27ff47
commit 7ddc75abdb

View File

@ -389,6 +389,28 @@ union idxd_offsets_register {
};
SPDK_STATIC_ASSERT(sizeof(union idxd_offsets_register) == 16, "size mismatch");
union idxd_gencfg_register {
struct {
uint8_t global_read_buf_limit;
uint8_t reserved0 : 4;
uint8_t user_mode_int_enabled : 1;
uint8_t reserved1 : 3;
uint16_t reserved2;
};
uint32_t raw;
};
SPDK_STATIC_ASSERT(sizeof(union idxd_gencfg_register) == 4, "size mismatch");
union idxd_genctrl_register {
struct {
uint32_t sw_err_int_enable : 1;
uint32_t halt_state_int_enable : 1;
uint32_t reserved : 30;
};
uint32_t raw;
};
SPDK_STATIC_ASSERT(sizeof(union idxd_genctrl_register) == 4, "size mismatch");
union idxd_gensts_register {
struct {
uint32_t state: 2;
@ -399,6 +421,31 @@ union idxd_gensts_register {
};
SPDK_STATIC_ASSERT(sizeof(union idxd_gensts_register) == 4, "size mismatch");
union idxd_intcause_register {
struct {
uint32_t software_err : 1;
uint32_t command_completion : 1;
uint32_t wq_occupancy_below_limit : 1;
uint32_t perfmon_counter_overflow : 1;
uint32_t halt_state : 1;
uint32_t reserved : 26;
uint32_t int_handles_revoked : 1;
};
uint32_t raw;
};
SPDK_STATIC_ASSERT(sizeof(union idxd_intcause_register) == 4, "size mismatch");
union idxd_cmd_register {
struct {
uint32_t operand : 20;
uint32_t command_code : 5;
uint32_t reserved : 6;
uint32_t request_completion_interrupt : 1;
};
uint32_t raw;
};
SPDK_STATIC_ASSERT(sizeof(union idxd_cmd_register) == 4, "size mismatch");
union idxd_cmdsts_register {
struct {
uint32_t err : 8;
@ -410,6 +457,29 @@ union idxd_cmdsts_register {
};
SPDK_STATIC_ASSERT(sizeof(union idxd_cmdsts_register) == 4, "size mismatch");
union idxd_cmdcap_register {
struct {
uint32_t reserved0 : 1;
uint32_t enable_device : 1;
uint32_t disable_device : 1;
uint32_t drain_all : 1;
uint32_t abort_all : 1;
uint32_t reset_device : 1;
uint32_t enable_wq : 1;
uint32_t disable_wq : 1;
uint32_t drain_wq : 1;
uint32_t abort_wq : 1;
uint32_t reset_wq : 1;
uint32_t drain_pasid : 1;
uint32_t abort_pasid : 1;
uint32_t request_int_handle : 1;
uint32_t release_int_handle : 1;
uint32_t reserved1 : 17;
};
uint32_t raw;
};
SPDK_STATIC_ASSERT(sizeof(union idxd_cmdcap_register) == 4, "size mismatch");
union idxd_swerr_register {
struct {
uint64_t valid: 1;
@ -437,14 +507,36 @@ union idxd_swerr_register {
SPDK_STATIC_ASSERT(sizeof(union idxd_swerr_register) == 32, "size mismatch");
struct idxd_registers {
uint32_t version;
union idxd_gencap_register gencap;
union idxd_wqcap_register wqcap;
union idxd_groupcap_register groupcap;
union idxd_enginecap_register enginecap;
struct idxd_opcap_register opcap;
uint32_t version;
uint32_t reserved0;
uint64_t reserved1;
union idxd_gencap_register gencap;
uint64_t reserved2;
union idxd_wqcap_register wqcap;
uint64_t reserved3;
union idxd_groupcap_register groupcap;
union idxd_enginecap_register enginecap;
struct idxd_opcap_register opcap;
union idxd_offsets_register offsets;
uint64_t reserved4[2];
union idxd_gencfg_register gencfg;
uint32_t reserved5;
union idxd_genctrl_register genctrl;
uint32_t reserved6;
union idxd_gensts_register gensts;
uint32_t reserved7;
union idxd_intcause_register intcause;
uint32_t reserved8;
union idxd_cmd_register cmd;
uint32_t reserved9;
union idxd_cmdsts_register cmdsts;
uint32_t reserved10;
union idxd_cmdcap_register cmdcap;
uint32_t reserved11;
uint64_t reserved12;
union idxd_swerr_register sw_err;
};
SPDK_STATIC_ASSERT(sizeof(struct idxd_registers) == 72, "size mismatch");
SPDK_STATIC_ASSERT(sizeof(struct idxd_registers) == 0xE0, "size mismatch");
union idxd_group_flags {
struct {