From 473d8e67d8819b50f1673b82747d7671f5946e5c Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Tue, 2 Jun 2020 15:51:43 +0000 Subject: [PATCH] common/mlx5: add virtio queue protection domain Starting from FW version 22.27.4002, it is required to configure protection domain (PD) for each virtq created by DevX. Add PD requirement in virtq DevX APIs. Cc: stable@dpdk.org Signed-off-by: Matan Azrad Signed-off-by: Xueming Li Reviewed-by: Maxime Coquelin --- drivers/common/mlx5/mlx5_devx_cmds.c | 1 + drivers/common/mlx5/mlx5_devx_cmds.h | 1 + drivers/common/mlx5/mlx5_prm.h | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index c5dba299e8..ec92eb60e5 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -1269,6 +1269,7 @@ mlx5_devx_cmd_create_virtq(void *ctx, MLX5_SET(virtio_q, virtctx, umem_3_size, attr->umems[2].size); MLX5_SET64(virtio_q, virtctx, umem_3_offset, attr->umems[2].offset); MLX5_SET(virtio_q, virtctx, counter_set_id, attr->counters_obj_id); + MLX5_SET(virtio_q, virtctx, pd, attr->pd); MLX5_SET(virtio_net_q, virtq, tisn_or_qpn, attr->tis_id); virtq_obj->obj = mlx5_glue->devx_obj_create(ctx, in, sizeof(in), out, sizeof(out)); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index 59a70a0e04..3ce44c353e 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -259,6 +259,7 @@ struct mlx5_devx_virtq_attr { uint16_t hw_available_index; uint16_t hw_used_index; uint16_t q_size; + uint32_t pd:24; uint32_t virtio_version_1_0:1; uint32_t tso_ipv4:1; uint32_t tso_ipv6:1; diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 5fc10d688a..c63795fc84 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -2088,7 +2088,9 @@ struct mlx5_ifc_virtio_q_bits { u8 umem_3_size[0x20]; u8 umem_3_offset[0x40]; u8 counter_set_id[0x20]; - u8 reserved_at_320[0xe0]; + u8 reserved_at_320[0x8]; + u8 pd[0x18]; + u8 reserved_at_340[0xc0]; }; struct mlx5_ifc_virtio_net_q_bits { -- 2.20.1