- * [PATCH v3 01/10] hw/mem/cxl_type3: Improve error handling in realize()
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
@ 2023-01-30 14:36 ` Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 02/10] hw/pci-bridge/cxl_downstream: Fix type naming mismatch Jonathan Cameron via
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:36 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
msix_init_exclusive_bar() can fail, so if it does cleanup the address space.
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 hw/mem/cxl_type3.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c
index dae4fd89ca..252822bd82 100644
--- a/hw/mem/cxl_type3.c
+++ b/hw/mem/cxl_type3.c
@@ -401,7 +401,7 @@ static void ct3_realize(PCIDevice *pci_dev, Error **errp)
     MemoryRegion *mr = ®s->component_registers;
     uint8_t *pci_conf = pci_dev->config;
     unsigned short msix_num = 1;
-    int i;
+    int i, rc;
 
     if (!cxl_setup_memory(ct3d, errp)) {
         return;
@@ -438,7 +438,10 @@ static void ct3_realize(PCIDevice *pci_dev, Error **errp)
                      &ct3d->cxl_dstate.device_registers);
 
     /* MSI(-X) Initailization */
-    msix_init_exclusive_bar(pci_dev, msix_num, 4, NULL);
+    rc = msix_init_exclusive_bar(pci_dev, msix_num, 4, NULL);
+    if (rc) {
+        goto err_address_space_free;
+    }
     for (i = 0; i < msix_num; i++) {
         msix_vector_use(pci_dev, i);
     }
@@ -450,6 +453,11 @@ static void ct3_realize(PCIDevice *pci_dev, Error **errp)
     cxl_cstate->cdat.free_cdat_table = ct3_free_cdat_table;
     cxl_cstate->cdat.private = ct3d;
     cxl_doe_cdat_init(cxl_cstate, errp);
+    return;
+
+err_address_space_free:
+    address_space_destroy(&ct3d->hostmem_as);
+    return;
 }
 
 static void ct3_exit(PCIDevice *pci_dev)
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 02/10] hw/pci-bridge/cxl_downstream: Fix type naming mismatch
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 01/10] hw/mem/cxl_type3: Improve error handling in realize() Jonathan Cameron via
@ 2023-01-30 14:36 ` Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 03/10] hw/cxl: set cxl-type3 device type to PCI_CLASS_MEMORY_CXL Jonathan Cameron via
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:36 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
Fix capitalization difference between struct name and typedef.
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 hw/pci-bridge/cxl_downstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-bridge/cxl_downstream.c b/hw/pci-bridge/cxl_downstream.c
index 3d4e6b59cd..54f507318f 100644
--- a/hw/pci-bridge/cxl_downstream.c
+++ b/hw/pci-bridge/cxl_downstream.c
@@ -15,7 +15,7 @@
 #include "hw/pci/pcie_port.h"
 #include "qapi/error.h"
 
-typedef struct CXLDownStreamPort {
+typedef struct CXLDownstreamPort {
     /*< private >*/
     PCIESlot parent_obj;
 
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 03/10] hw/cxl: set cxl-type3 device type to PCI_CLASS_MEMORY_CXL
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 01/10] hw/mem/cxl_type3: Improve error handling in realize() Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 02/10] hw/pci-bridge/cxl_downstream: Fix type naming mismatch Jonathan Cameron via
@ 2023-01-30 14:36 ` Jonathan Cameron via
  2023-01-30 14:36 ` [PATCH v3 04/10] hw/cxl: Add CXL_CAPACITY_MULTIPLIER definition Jonathan Cameron via
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:36 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
From: Gregory Price <gourry.memverge@gmail.com>
Current code sets to STORAGE_EXPRESS and then overrides it.
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Gregory Price <gregory.price@memverge.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 hw/mem/cxl_type3.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c
index 252822bd82..217a5e639b 100644
--- a/hw/mem/cxl_type3.c
+++ b/hw/mem/cxl_type3.c
@@ -408,7 +408,6 @@ static void ct3_realize(PCIDevice *pci_dev, Error **errp)
     }
 
     pci_config_set_prog_interface(pci_conf, 0x10);
-    pci_config_set_class(pci_conf, PCI_CLASS_MEMORY_CXL);
 
     pcie_endpoint_cap_init(pci_dev, 0x80);
     if (ct3d->sn != UI64_NULL) {
@@ -627,7 +626,7 @@ static void ct3_class_init(ObjectClass *oc, void *data)
 
     pc->realize = ct3_realize;
     pc->exit = ct3_exit;
-    pc->class_id = PCI_CLASS_STORAGE_EXPRESS;
+    pc->class_id = PCI_CLASS_MEMORY_CXL;
     pc->vendor_id = PCI_VENDOR_ID_INTEL;
     pc->device_id = 0xd93; /* LVF for now */
     pc->revision = 1;
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 04/10] hw/cxl: Add CXL_CAPACITY_MULTIPLIER definition
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (2 preceding siblings ...)
  2023-01-30 14:36 ` [PATCH v3 03/10] hw/cxl: set cxl-type3 device type to PCI_CLASS_MEMORY_CXL Jonathan Cameron via
@ 2023-01-30 14:36 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 05/10] tests/acpi: Allow update of q35/DSDT.cxl Jonathan Cameron via
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:36 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
From: Gregory Price <gourry.memverge@gmail.com>
Remove usage of magic numbers when accessing capacity fields and replace
with CXL_CAPACITY_MULTIPLIER, matching the kernel definition.
Signed-off-by: Gregory Price <gregory.price@memverge.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
v2:
Change to 256 * MiB and include qemu/units.h (Philippe Mathieu-Daudé)
---
 hw/cxl/cxl-mailbox-utils.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index bc1bb18844..3f67b665f5 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -12,8 +12,11 @@
 #include "hw/pci/pci.h"
 #include "qemu/cutils.h"
 #include "qemu/log.h"
+#include "qemu/units.h"
 #include "qemu/uuid.h"
 
+#define CXL_CAPACITY_MULTIPLIER   (256 * MiB)
+
 /*
  * How to add a new command, example. The command set FOO, with cmd BAR.
  *  1. Add the command set and cmd to the enum.
@@ -138,7 +141,7 @@ static ret_code cmd_firmware_update_get_info(struct cxl_cmd *cmd,
     } QEMU_PACKED *fw_info;
     QEMU_BUILD_BUG_ON(sizeof(*fw_info) != 0x50);
 
-    if (cxl_dstate->pmem_size < (256 << 20)) {
+    if (cxl_dstate->pmem_size < CXL_CAPACITY_MULTIPLIER) {
         return CXL_MBOX_INTERNAL_ERROR;
     }
 
@@ -283,7 +286,7 @@ static ret_code cmd_identify_memory_device(struct cxl_cmd *cmd,
     CXLType3Class *cvc = CXL_TYPE3_GET_CLASS(ct3d);
     uint64_t size = cxl_dstate->pmem_size;
 
-    if (!QEMU_IS_ALIGNED(size, 256 << 20)) {
+    if (!QEMU_IS_ALIGNED(size, CXL_CAPACITY_MULTIPLIER)) {
         return CXL_MBOX_INTERNAL_ERROR;
     }
 
@@ -293,8 +296,8 @@ static ret_code cmd_identify_memory_device(struct cxl_cmd *cmd,
     /* PMEM only */
     snprintf(id->fw_revision, 0x10, "BWFW VERSION %02d", 0);
 
-    id->total_capacity = size / (256 << 20);
-    id->persistent_capacity = size / (256 << 20);
+    id->total_capacity = size / CXL_CAPACITY_MULTIPLIER;
+    id->persistent_capacity = size / CXL_CAPACITY_MULTIPLIER;
     id->lsa_size = cvc->get_lsa_size(ct3d);
 
     *len = sizeof(*id);
@@ -314,14 +317,14 @@ static ret_code cmd_ccls_get_partition_info(struct cxl_cmd *cmd,
     QEMU_BUILD_BUG_ON(sizeof(*part_info) != 0x20);
     uint64_t size = cxl_dstate->pmem_size;
 
-    if (!QEMU_IS_ALIGNED(size, 256 << 20)) {
+    if (!QEMU_IS_ALIGNED(size, CXL_CAPACITY_MULTIPLIER)) {
         return CXL_MBOX_INTERNAL_ERROR;
     }
 
     /* PMEM only */
     part_info->active_vmem = 0;
     part_info->next_vmem = 0;
-    part_info->active_pmem = size / (256 << 20);
+    part_info->active_pmem = size / CXL_CAPACITY_MULTIPLIER;
     part_info->next_pmem = 0;
 
     *len = sizeof(*part_info);
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 05/10] tests/acpi: Allow update of q35/DSDT.cxl
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (3 preceding siblings ...)
  2023-01-30 14:36 ` [PATCH v3 04/10] hw/cxl: Add CXL_CAPACITY_MULTIPLIER definition Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 06/10] hw/i386/acpi: Drop duplicate _UID entry for CXL root bridge Jonathan Cameron via
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
Next patch will drop duplicate _UID entry so allow update.
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
v3: New patch
 tests/qtest/bios-tables-test-allowed-diff.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..9ce0f596cc 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/q35/DSDT.cxl",
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 06/10] hw/i386/acpi: Drop duplicate _UID entry for CXL root bridge
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (4 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 05/10] tests/acpi: Allow update of q35/DSDT.cxl Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 07/10] tests/acpi: Update q35/DSDT.cxl for removed duplicate _UID Jonathan Cameron via
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
Noticed as this prevents iASL disasembling the DSDT table.
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 hw/i386/acpi-build.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 127c4e2d50..a584b62ae2 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1482,7 +1482,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
                 aml_append(pkg, aml_eisaid("PNP0A03"));
                 aml_append(dev, aml_name_decl("_CID", pkg));
                 aml_append(dev, aml_name_decl("_ADR", aml_int(0)));
-                aml_append(dev, aml_name_decl("_UID", aml_int(bus_num)));
                 build_cxl_osc_method(dev);
             } else if (pci_bus_is_express(bus)) {
                 aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0A08")));
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 07/10] tests/acpi: Update q35/DSDT.cxl for removed duplicate _UID
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (5 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 06/10] hw/i386/acpi: Drop duplicate _UID entry for CXL root bridge Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 08/10] qemu/bswap: Add const_le64() Jonathan Cameron via
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
Dropping the ID effects this table in trivial fashion.
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 v3: New patch to update the table.
 tests/data/acpi/q35/DSDT.cxl                | Bin 9636 -> 9622 bytes
 tests/qtest/bios-tables-test-allowed-diff.h |   1 -
 2 files changed, 1 deletion(-)
diff --git a/tests/data/acpi/q35/DSDT.cxl b/tests/data/acpi/q35/DSDT.cxl
index f9c6dd4ee0502ca000509493411b421dfd23b96f..e0a141d6f80865c5f2573dabd41fc353108df89a 100644
GIT binary patch
delta 65
zcmZ4DJ<XfTCD<ionkoYWBiBZ*y)xV`DlzfFPVv!A-pZ3N$yjZUmtV~|d7oS;iiDgz
INWzs30G34*AOHXW
delta 79
zcmbQ{y~LZ#CD<ioi7EpFW8Oxty)xY1DlzfFPVv!APAZcx$yl+)hkCkj-P;@>zlL%0
ScDYa#d2xBDJP%ObjST?dDi`tq
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 9ce0f596cc..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,2 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT.cxl",
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 08/10] qemu/bswap: Add const_le64()
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (6 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 07/10] tests/acpi: Update q35/DSDT.cxl for removed duplicate _UID Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 09/10] qemu/uuid: Add UUID static initializer Jonathan Cameron via
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
From: Ira Weiny <ira.weiny@intel.com>
Gcc requires constant versions of cpu_to_le* calls.
Add a 64 bit version.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
v2: Update comment (Philippe)
---
 include/qemu/bswap.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
index 346d05f2aa..c5cb9686c5 100644
--- a/include/qemu/bswap.h
+++ b/include/qemu/bswap.h
@@ -182,11 +182,20 @@ CPU_CONVERT(le, 32, uint32_t)
 CPU_CONVERT(le, 64, uint64_t)
 
 /*
- * Same as cpu_to_le{16,32}, except that gcc will figure the result is
+ * Same as cpu_to_le{16,32,64}, except that gcc will figure the result is
  * a compile-time constant if you pass in a constant.  So this can be
  * used to initialize static variables.
  */
 #if HOST_BIG_ENDIAN
+# define const_le64(_x)                          \
+    ((((_x) & 0x00000000000000ffU) << 56) |      \
+     (((_x) & 0x000000000000ff00U) << 40) |      \
+     (((_x) & 0x0000000000ff0000U) << 24) |      \
+     (((_x) & 0x00000000ff000000U) <<  8) |      \
+     (((_x) & 0x000000ff00000000U) >>  8) |      \
+     (((_x) & 0x0000ff0000000000U) >> 24) |      \
+     (((_x) & 0x00ff000000000000U) >> 40) |      \
+     (((_x) & 0xff00000000000000U) >> 56))
 # define const_le32(_x)                          \
     ((((_x) & 0x000000ffU) << 24) |              \
      (((_x) & 0x0000ff00U) <<  8) |              \
@@ -196,6 +205,7 @@ CPU_CONVERT(le, 64, uint64_t)
     ((((_x) & 0x00ff) << 8) |                    \
      (((_x) & 0xff00) >> 8))
 #else
+# define const_le64(_x) (_x)
 # define const_le32(_x) (_x)
 # define const_le16(_x) (_x)
 #endif
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 09/10] qemu/uuid: Add UUID static initializer
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (7 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 08/10] qemu/bswap: Add const_le64() Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 14:37 ` [PATCH v3 10/10] hw/cxl/mailbox: Use new UUID network order define for cel_uuid Jonathan Cameron via
  2023-01-30 15:07 ` [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Gregory Price
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
From: Ira Weiny <ira.weiny@intel.com>
UUID's are defined as network byte order fields.  No static initializer
was available for UUID's in their standard big endian format.
Define a big endian initializer for UUIDs.
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 include/qemu/uuid.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h
index 9925febfa5..dc40ee1fc9 100644
--- a/include/qemu/uuid.h
+++ b/include/qemu/uuid.h
@@ -61,6 +61,18 @@ typedef struct {
     (clock_seq_hi_and_reserved), (clock_seq_low), (node0), (node1), (node2),\
     (node3), (node4), (node5) }
 
+/* Normal (network byte order) UUID */
+#define UUID(time_low, time_mid, time_hi_and_version,                    \
+  clock_seq_hi_and_reserved, clock_seq_low, node0, node1, node2,         \
+  node3, node4, node5)                                                   \
+  { ((time_low) >> 24) & 0xff, ((time_low) >> 16) & 0xff,                \
+    ((time_low) >> 8) & 0xff, (time_low) & 0xff,                         \
+    ((time_mid) >> 8) & 0xff, (time_mid) & 0xff,                         \
+    ((time_hi_and_version) >> 8) & 0xff, (time_hi_and_version) & 0xff,   \
+    (clock_seq_hi_and_reserved), (clock_seq_low),                        \
+    (node0), (node1), (node2), (node3), (node4), (node5)                 \
+  }
+
 #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-" \
                  "%02hhx%02hhx-%02hhx%02hhx-" \
                  "%02hhx%02hhx-" \
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * [PATCH v3 10/10] hw/cxl/mailbox: Use new UUID network order define for cel_uuid
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (8 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 09/10] qemu/uuid: Add UUID static initializer Jonathan Cameron via
@ 2023-01-30 14:37 ` Jonathan Cameron via
  2023-01-30 15:07 ` [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Gregory Price
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron via @ 2023-01-30 14:37 UTC (permalink / raw)
  To: qemu-devel, Michael Tsirkin
  Cc: Ben Widawsky, linux-cxl, linuxarm, Ira Weiny, Gregory Price,
	Philippe Mathieu-Daudé
From: Ira Weiny <ira.weiny@intel.com>
The cel_uuid was programatically generated previously because there was
no static initializer for network order UUIDs.
Use the new network order initializer for cel_uuid.  Adjust
cxl_initialize_mailbox() because it can't fail now.
Update specification reference.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
v2:
Make it const (Philippe)
---
 hw/cxl/cxl-device-utils.c   |  2 +-
 hw/cxl/cxl-mailbox-utils.c  | 13 ++++++-------
 include/hw/cxl/cxl_device.h |  2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c
index 83ce7a8270..4c5e88aaf5 100644
--- a/hw/cxl/cxl-device-utils.c
+++ b/hw/cxl/cxl-device-utils.c
@@ -267,5 +267,5 @@ void cxl_device_register_init_common(CXLDeviceState *cxl_dstate)
     cxl_device_cap_init(cxl_dstate, MEMORY_DEVICE, 0x4000);
     memdev_reg_init_common(cxl_dstate);
 
-    assert(cxl_initialize_mailbox(cxl_dstate) == 0);
+    cxl_initialize_mailbox(cxl_dstate);
 }
diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index 3f67b665f5..206e04a4b8 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -193,7 +193,11 @@ static ret_code cmd_timestamp_set(struct cxl_cmd *cmd,
     return CXL_MBOX_SUCCESS;
 }
 
-static QemuUUID cel_uuid;
+/* CXL 3.0 8.2.9.5.2.1 Command Effects Log (CEL) */
+static const QemuUUID cel_uuid = {
+    .data = UUID(0x0da9c0b5, 0xbf41, 0x4b78, 0x8f, 0x79,
+                 0x96, 0xb1, 0x62, 0x3b, 0x3f, 0x17)
+};
 
 /* 8.2.9.4.1 */
 static ret_code cmd_logs_get_supported(struct cxl_cmd *cmd,
@@ -458,11 +462,8 @@ void cxl_process_mailbox(CXLDeviceState *cxl_dstate)
                      DOORBELL, 0);
 }
 
-int cxl_initialize_mailbox(CXLDeviceState *cxl_dstate)
+void cxl_initialize_mailbox(CXLDeviceState *cxl_dstate)
 {
-    /* CXL 2.0: Table 169 Get Supported Logs Log Entry */
-    const char *cel_uuidstr = "0da9c0b5-bf41-4b78-8f79-96b1623b3f17";
-
     for (int set = 0; set < 256; set++) {
         for (int cmd = 0; cmd < 256; cmd++) {
             if (cxl_cmd_set[set][cmd].handler) {
@@ -476,6 +477,4 @@ int cxl_initialize_mailbox(CXLDeviceState *cxl_dstate)
             }
         }
     }
-
-    return qemu_uuid_parse(cel_uuidstr, &cel_uuid);
 }
diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h
index 250adf18b2..7e5ad65c1d 100644
--- a/include/hw/cxl/cxl_device.h
+++ b/include/hw/cxl/cxl_device.h
@@ -170,7 +170,7 @@ CXL_DEVICE_CAPABILITY_HEADER_REGISTER(MEMORY_DEVICE,
                                       CXL_DEVICE_CAP_HDR1_OFFSET +
                                           CXL_DEVICE_CAP_REG_SIZE * 2)
 
-int cxl_initialize_mailbox(CXLDeviceState *cxl_dstate);
+void cxl_initialize_mailbox(CXLDeviceState *cxl_dstate);
 void cxl_process_mailbox(CXLDeviceState *cxl_dstate);
 
 #define cxl_device_cap_init(dstate, reg, cap_id)                           \
-- 
2.37.2
^ permalink raw reply related	[flat|nested] 12+ messages in thread
- * Re: [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream
  2023-01-30 14:36 [PATCH v3 00/10] hw/cxl: CXL emulation cleanups and minor fixes for upstream Jonathan Cameron via
                   ` (9 preceding siblings ...)
  2023-01-30 14:37 ` [PATCH v3 10/10] hw/cxl/mailbox: Use new UUID network order define for cel_uuid Jonathan Cameron via
@ 2023-01-30 15:07 ` Gregory Price
  10 siblings, 0 replies; 12+ messages in thread
From: Gregory Price @ 2023-01-30 15:07 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: qemu-devel, Michael Tsirkin, Ben Widawsky, linux-cxl, linuxarm,
	Ira Weiny, Gregory Price, Philippe Mathieu-Daudé
Tested and reviewed this series (except my own patches, obviously).
Reviewed-by: Gregory Price <gregory.price@memverge.com>
Tested-by: Gregory Price <gregory.price@memverge.com>
On Mon, Jan 30, 2023 at 02:36:55PM +0000, Jonathan Cameron wrote:
> V3: Thanks to Michael Tsirkin
>  - Update tests/data/acpi/q35/DSDT.cxl to reflect dropping of the duplicate _UID.
>    Usual dance with marking table to be ignored by test then making change and finally
>    updating the table with the new version and dropping the entry preventing the tests
>    from running.
>  
> V2:
> - Various minor issues found by Philippe, see individual patches.
>   Note that the const_le64() patch matches changes in a set of Philippe's that was
>   never applied. Philippe may send an update of that series before this merges.
>   If that occurs, drop "qemu/bswap: Add const_le64()"
> - Picked up tags.
> 
> V1 Cover letter.
> 
> A small collection of misc fixes and tidying up pulled out from various
> series. I've pulled this to the top of my queue of CXL related work
> as they stand fine on their own and it will reduce the noise in
> the larger patch sets if these go upstream first.
> 
> Gregory's patches were posted as part of his work on adding volatile support.
> https://lore.kernel.org/linux-cxl/20221006233702.18532-1-gregory.price@memverge.com/
> https://lore.kernel.org/linux-cxl/20221128150157.97724-2-gregory.price@memverge.com/
> I might propose this for upstream inclusion this cycle, but testing is
> currently limited by lack of suitable kernel support.
> 
> Ira's patches were part of his event injection series.
> https://lore.kernel.org/linux-cxl/20221221-ira-cxl-events-2022-11-17-v2-0-2ce2ecc06219@intel.com/
> Intent is to propose for upstream the rest of that series shortly after
> some minor changes from earlier review.
> 
> My three patches have not previously been posted.
> 
> For the curious, the current state of QEMU CXL emulation that we are working
> through the backlog wrt to final cleanup before proposing for upstreaming can be found at.
> 
> https://gitlab.com/jic23/qemu/-/commits/cxl-2023-01-11
> 
> 
> Gregory Price (2):
>   hw/cxl: set cxl-type3 device type to PCI_CLASS_MEMORY_CXL
>   hw/cxl: Add CXL_CAPACITY_MULTIPLIER definition
> 
> Ira Weiny (3):
>   qemu/bswap: Add const_le64()
>   qemu/uuid: Add UUID static initializer
>   hw/cxl/mailbox: Use new UUID network order define for cel_uuid
> 
> Jonathan Cameron (5):
>   hw/mem/cxl_type3: Improve error handling in realize()
>   hw/pci-bridge/cxl_downstream: Fix type naming mismatch
>   tests/acpi: Allow update of q35/DSDT.cxl
>   hw/i386/acpi: Drop duplicate _UID entry for CXL root bridge
>   tests: acpi: Update q35/DSDT.cxl for removed duplicate UID
> 
>  hw/cxl/cxl-device-utils.c      |   2 +-
>  hw/cxl/cxl-mailbox-utils.c     |  28 +++++++++++++++-------------
>  hw/i386/acpi-build.c           |   1 -
>  hw/mem/cxl_type3.c             |  15 +++++++++++----
>  hw/pci-bridge/cxl_downstream.c |   2 +-
>  include/hw/cxl/cxl_device.h    |   2 +-
>  include/qemu/bswap.h           |  12 +++++++++++-
>  include/qemu/uuid.h            |  12 ++++++++++++
>  tests/data/acpi/q35/DSDT.cxl   | Bin 9636 -> 9622 bytes
>  9 files changed, 52 insertions(+), 22 deletions(-)
> 
> -- 
> 2.37.2
> 
^ permalink raw reply	[flat|nested] 12+ messages in thread