[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 14/17] hw/cxl/mbox: Add Get Background Operation Status Comman
|
From: |
Jonathan Cameron |
|
Subject: |
[PATCH v2 14/17] hw/cxl/mbox: Add Get Background Operation Status Command |
|
Date: |
Mon, 23 Oct 2023 17:08:03 +0100 |
For now, provide this command on type 3 main mailbox only.
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
hw/cxl/cxl-mailbox-utils.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index 2463f239af..2b78136588 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -50,6 +50,7 @@
enum {
INFOSTAT = 0x00,
#define IS_IDENTIFY 0x1
+ #define BACKGROUND_OPERATION_STATUS 0x2
EVENTS = 0x01,
#define GET_RECORDS 0x0
#define CLEAR_RECORDS 0x1
@@ -452,6 +453,36 @@ static CXLRetCode cmd_get_physical_port_state(const struct
cxl_cmd *cmd,
return CXL_MBOX_SUCCESS;
}
+/* CXL r3.0 8.2.9.1.2 */
+static CXLRetCode cmd_infostat_bg_op_sts(const struct cxl_cmd *cmd,
+ uint8_t *payload_in,
+ size_t len_in,
+ uint8_t *payload_out,
+ size_t *len_out,
+ CXLCCI *cci)
+{
+ struct {
+ uint8_t status;
+ uint8_t rsvd;
+ uint16_t opcode;
+ uint16_t returncode;
+ uint16_t vendor_ext_status;
+ } QEMU_PACKED *bg_op_status;
+ QEMU_BUILD_BUG_ON(sizeof(*bg_op_status) != 8);
+
+ bg_op_status = (void *)payload_out;
+ memset(bg_op_status, 0, sizeof(*bg_op_status));
+ bg_op_status->status = cci->bg.complete_pct << 1;
+ if (cci->bg.runtime > 0) {
+ bg_op_status->status |= 1U << 0;
+ }
+ bg_op_status->opcode = cci->bg.opcode;
+ bg_op_status->returncode = cci->bg.ret_code;
+ *len_out = sizeof(*bg_op_status);
+
+ return CXL_MBOX_SUCCESS;
+}
+
/* 8.2.9.2.1 */
static CXLRetCode cmd_firmware_update_get_info(const struct cxl_cmd *cmd,
uint8_t *payload_in,
@@ -1111,6 +1142,8 @@ static const struct cxl_cmd cxl_cmd_set[256][256] = {
static const struct cxl_cmd cxl_cmd_set_sw[256][256] = {
[INFOSTAT][IS_IDENTIFY] = { "IDENTIFY", cmd_infostat_identify, 0, 0 },
+ [INFOSTAT][BACKGROUND_OPERATION_STATUS] = { "BACKGROUND_OPERATION_STATUS",
+ cmd_infostat_bg_op_sts, 0, 0 },
[TIMESTAMP][GET] = { "TIMESTAMP_GET", cmd_timestamp_get, 0, 0 },
[TIMESTAMP][SET] = { "TIMESTAMP_SET", cmd_timestamp_set, 0,
IMMEDIATE_POLICY_CHANGE },
--
2.39.2
- [PATCH v2 04/17] hw/cxl/mbox: Generalize the CCI command processing, (continued)
- [PATCH v2 04/17] hw/cxl/mbox: Generalize the CCI command processing, Jonathan Cameron, 2023/10/23
- [PATCH v2 05/17] hw/pci-bridge/cxl_upstream: Move defintion of device to header., Jonathan Cameron, 2023/10/23
- [PATCH v2 06/17] hw/cxl: Add a switch mailbox CCI function, Jonathan Cameron, 2023/10/23
- [PATCH v2 07/17] hw/cxl/mbox: Add Information and Status / Identify command, Jonathan Cameron, 2023/10/23
- [PATCH v2 08/17] hw/cxl/mbox: Add Physical Switch Identify command., Jonathan Cameron, 2023/10/23
- [PATCH v2 09/17] hw/pci-bridge/cxl_downstream: Set default link width and link speed, Jonathan Cameron, 2023/10/23
- [PATCH v2 10/17] hw/cxl: Implement Physical Ports status retrieval, Jonathan Cameron, 2023/10/23
- [PATCH v2 11/17] hw/cxl/mbox: Add support for background operations, Jonathan Cameron, 2023/10/23
- [PATCH v2 12/17] hw/cxl/mbox: Wire up interrupts for background completion, Jonathan Cameron, 2023/10/23
- [PATCH v2 13/17] hw/cxl: Add support for device sanitation, Jonathan Cameron, 2023/10/23
- [PATCH v2 14/17] hw/cxl/mbox: Add Get Background Operation Status Command,
Jonathan Cameron <=
- [PATCH v2 15/17] hw/cxl/type3: Cleanup multiple CXL_TYPE3() calls in read/write functions, Jonathan Cameron, 2023/10/23
- [PATCH v2 16/17] hw/cxl: Add dummy security state get, Jonathan Cameron, 2023/10/23
- [PATCH v2 17/17] hw/cxl: Add tunneled command support to mailbox for switch cci., Jonathan Cameron, 2023/10/23