The dedicated MLX5_CMD_OP_ACCESS_REGISTER_USER opcode must be used to read hardware register content from unprotected mode.
Fixes: 737f44a25d97 ("common/mlx5: add register access DevX routine") Signed-off-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> --- drivers/common/mlx5/mlx5_devx_cmds.c | 3 ++- drivers/common/mlx5/mlx5_prm.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 0cfa4dc..9f2f706 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -44,7 +44,8 @@ DRV_LOG(ERR, "Not enough buffer for register read data"); return -1; } - MLX5_SET(access_register_in, in, opcode, MLX5_CMD_OP_ACCESS_REGISTER); + MLX5_SET(access_register_in, in, opcode, + MLX5_CMD_OP_ACCESS_REGISTER_USER); MLX5_SET(access_register_in, in, op_mod, MLX5_ACCESS_REGISTER_IN_OP_MOD_READ); MLX5_SET(access_register_in, in, register_id, reg_id); diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index ec3b600..aba0368 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -806,6 +806,7 @@ enum { MLX5_CMD_OP_CREATE_GENERAL_OBJECT = 0xa00, MLX5_CMD_OP_MODIFY_GENERAL_OBJECT = 0xa01, MLX5_CMD_OP_QUERY_GENERAL_OBJECT = 0xa02, + MLX5_CMD_OP_ACCESS_REGISTER_USER = 0xB0C, }; enum { -- 1.8.3.1