qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/5] Support ACPI NVDIMM Label Methods
@ 2022-09-22 12:21 Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 1/5] tests/acpi: allow SSDT changes Robert Hoo
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

Originally NVDIMM Label methods was defined in Intel PMEM _DSM Interface
Spec [1], of function index 4, 5 and 6.
Recent ACPI spec [2] has deprecated those _DSM methods with ACPI NVDIMM
Label Methods _LS{I,R,W}. The essence of these functions has no changes.

This patch set is to update QEMU emulation on this, as well as update
bios-table-test golden binaries.

[1] Intel PMEM _DSM Interface Spec v2.0, 3.10 Deprecated Functions
https://pmem.io/documents/IntelOptanePMem_DSM_Interface-V2.0.pdf
[2] ACPI Spec v6.4, 6.5.10 NVDIMM Label Methods
https://uefi.org/sites/default/files/resources/ACPI_Spec_6_4_Jan22.pdf

---
Change Log:
v3 --> v4:
Use more LocalX in ASL functions, instead of global scope variables.

v2 --> v3:
Patch of nvdimm_debug() --> qemu trace, has been separated and already
upstream'ed.
Patch of accepting _DSM rev.2 is dropped, as unnecessary.
Roll back implementation to the idea of simply wrapper _DSM.

v1 --> v2:
Almost rewritten
Separate Patch 2
Dance with tests/qtest/bios-table-tests
Add trace event

Robert Hoo (5):
  tests/acpi: allow SSDT changes
  acpi/ssdt: Fix aml_or() and aml_and() in if clause
  acpi/nvdimm: define macro for NVDIMM Device _DSM
  acpi/nvdimm: Implement ACPI NVDIMM Label Methods
  test/acpi/bios-tables-test: SSDT: update golden master binaries

 hw/acpi/nvdimm.c                 | 106 +++++++++++++++++++++++++++++--
 tests/data/acpi/pc/SSDT.dimmpxm  | Bin 734 -> 1815 bytes
 tests/data/acpi/q35/SSDT.dimmpxm | Bin 734 -> 1815 bytes
 3 files changed, 100 insertions(+), 6 deletions(-)


base-commit: 6338c30111d596d955e6bc933a82184a0b910c43
-- 
2.31.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v4 1/5] tests/acpi: allow SSDT changes
  2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
@ 2022-09-22 12:21 ` Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 2/5] acpi/ssdt: Fix aml_or() and aml_and() in if clause Robert Hoo
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
Reviewed-by: Jingqi Liu <jingqi.liu@intel.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..eb8bae1407 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,3 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/SSDT.dimmpxm",
+"tests/data/acpi/q35/SSDT.dimmpxm",
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v4 2/5] acpi/ssdt: Fix aml_or() and aml_and() in if clause
  2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 1/5] tests/acpi: allow SSDT changes Robert Hoo
@ 2022-09-22 12:21 ` Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 3/5] acpi/nvdimm: define macro for NVDIMM Device _DSM Robert Hoo
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

In If condition, using bitwise and/or, rather than logical and/or.

The result change in AML code:

If (((Local6 == Zero) | (Arg0 != Local0)))
==>
If (((Local6 == Zero) || (Arg0 != Local0)))

If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
==>
If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3) == One)))

Fixes: 90623ebf603 ("nvdimm acpi: check UUID")
Fixes: 4568c948066 ("nvdimm acpi: save arg3 of _DSM method")
Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
Reviewed-by: Jingqi Liu <jingqi.liu@intel.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/nvdimm.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index 31e46df0bd..201317c611 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -1037,7 +1037,7 @@ static void nvdimm_build_common_dsm(Aml *dev,
 
     uuid_invalid = aml_lnot(aml_equal(uuid, expected_uuid));
 
-    unsupport = aml_if(aml_or(unpatched, uuid_invalid, NULL));
+    unsupport = aml_if(aml_lor(unpatched, uuid_invalid));
 
     /*
      * function 0 is called to inquire what functions are supported by
@@ -1069,10 +1069,9 @@ static void nvdimm_build_common_dsm(Aml *dev,
      * in the DSM Spec.
      */
     pckg = aml_arg(3);
-    ifctx = aml_if(aml_and(aml_equal(aml_object_type(pckg),
+    ifctx = aml_if(aml_land(aml_equal(aml_object_type(pckg),
                    aml_int(4 /* Package */)) /* It is a Package? */,
-                   aml_equal(aml_sizeof(pckg), aml_int(1)) /* 1 element? */,
-                   NULL));
+                   aml_equal(aml_sizeof(pckg), aml_int(1)) /* 1 element? */));
 
     pckg_index = aml_local(2);
     pckg_buf = aml_local(3);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v4 3/5] acpi/nvdimm: define macro for NVDIMM Device _DSM
  2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 1/5] tests/acpi: allow SSDT changes Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 2/5] acpi/ssdt: Fix aml_or() and aml_and() in if clause Robert Hoo
@ 2022-09-22 12:21 ` Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods Robert Hoo
  2022-09-22 12:21 ` [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries Robert Hoo
  4 siblings, 0 replies; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

Since it will be heavily used in next patch, define macro
NVDIMM_DEVICE_DSM_UUID for "4309AC30-0D11-11E4-9191-0800200C9A66", which is
NVDIMM device specific method uuid defined in NVDIMM _DSM interface spec,
Section 3. [1]

No functional changes in this patch.

[1] https://pmem.io/documents/IntelOptanePMem_DSM_Interface-V2.0.pdf

Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/nvdimm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index 201317c611..afff911c1e 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -922,6 +922,7 @@ void nvdimm_init_acpi_state(NVDIMMState *state, MemoryRegion *io,
 #define NVDIMM_DSM_RFIT_STATUS  "RSTA"
 
 #define NVDIMM_QEMU_RSVD_UUID   "648B9CF2-CDA1-4312-8AD9-49C4AF32BD62"
+#define NVDIMM_DEVICE_DSM_UUID  "4309AC30-0D11-11E4-9191-0800200C9A66"
 
 static void nvdimm_build_common_dsm(Aml *dev,
                                     NVDIMMState *nvdimm_state)
@@ -1029,8 +1030,7 @@ static void nvdimm_build_common_dsm(Aml *dev,
                /* UUID for QEMU internal use */), expected_uuid));
     aml_append(elsectx, ifctx);
     elsectx2 = aml_else();
-    aml_append(elsectx2, aml_store(
-               aml_touuid("4309AC30-0D11-11E4-9191-0800200C9A66")
+    aml_append(elsectx2, aml_store(aml_touuid(NVDIMM_DEVICE_DSM_UUID)
                /* UUID for NVDIMM Devices */, expected_uuid));
     aml_append(elsectx, elsectx2);
     aml_append(method, elsectx);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods
  2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
                   ` (2 preceding siblings ...)
  2022-09-22 12:21 ` [PATCH v4 3/5] acpi/nvdimm: define macro for NVDIMM Device _DSM Robert Hoo
@ 2022-09-22 12:21 ` Robert Hoo
  2022-10-20 11:45   ` Igor Mammedov
  2022-09-22 12:21 ` [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries Robert Hoo
  4 siblings, 1 reply; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

Recent ACPI spec [1] has defined NVDIMM Label Methods _LS{I,R,W}, which
deprecates corresponding _DSM Functions defined by PMEM _DSM Interface spec
[2].

Since the semantics of the new Label Methods are almost same as old _DSM
methods, the implementations here simply wrapper old ones.

ASL form diff can be found in next patch of updating golden master
binaries.

[1] ACPI Spec v6.4, 6.5.10 NVDIMM Label Methods
https://uefi.org/sites/default/files/resources/ACPI_Spec_6_4_Jan22.pdf
[2] Intel PMEM _DSM Interface Spec v2.0, 3.10 Deprecated Functions
https://pmem.io/documents/IntelOptanePMem_DSM_Interface-V2.0.pdf

Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
---
 hw/acpi/nvdimm.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index afff911c1e..a3b25a92f3 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -1243,6 +1243,7 @@ static void nvdimm_build_fit(Aml *dev)
 static void nvdimm_build_nvdimm_devices(Aml *root_dev, uint32_t ram_slots)
 {
     uint32_t slot;
+    Aml *method, *pkg, *field, *com_call;
 
     for (slot = 0; slot < ram_slots; slot++) {
         uint32_t handle = nvdimm_slot_to_handle(slot);
@@ -1260,6 +1261,100 @@ static void nvdimm_build_nvdimm_devices(Aml *root_dev, uint32_t ram_slots)
          */
         aml_append(nvdimm_dev, aml_name_decl("_ADR", aml_int(handle)));
 
+        /*
+         * ACPI v6.4: Section 6.5.10 NVDIMM Label Methods
+         */
+        /* _LSI */
+        method = aml_method("_LSI", 0, AML_SERIALIZED);
+        com_call = aml_call5(NVDIMM_COMMON_DSM,
+                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
+                            aml_int(1), aml_int(4), aml_int(0),
+                            aml_int(handle));
+        aml_append(method, aml_store(com_call, aml_local(0)));
+
+        aml_append(method, aml_create_dword_field(aml_local(0),
+                                                  aml_int(0), "STTS"));
+        aml_append(method, aml_create_dword_field(aml_local(0), aml_int(4),
+                                                  "SLSA"));
+        aml_append(method, aml_create_dword_field(aml_local(0), aml_int(8),
+                                                  "MAXT"));
+
+        pkg = aml_package(3);
+        aml_append(pkg, aml_name("STTS"));
+        aml_append(pkg, aml_name("SLSA"));
+        aml_append(pkg, aml_name("MAXT"));
+        aml_append(method, aml_store(pkg, aml_local(1)));
+        aml_append(method, aml_return(aml_local(1)));
+
+        aml_append(nvdimm_dev, method);
+
+        /* _LSR */
+        method = aml_method("_LSR", 2, AML_SERIALIZED);
+        aml_append(method, aml_name_decl("INPT", aml_buffer(8, NULL)));
+
+        aml_append(method, aml_create_dword_field(aml_name("INPT"),
+                                                  aml_int(0), "OFST"));
+        aml_append(method, aml_create_dword_field(aml_name("INPT"),
+                                                  aml_int(4), "LEN"));
+        aml_append(method, aml_store(aml_arg(0), aml_name("OFST")));
+        aml_append(method, aml_store(aml_arg(1), aml_name("LEN")));
+
+        pkg = aml_package(1);
+        aml_append(pkg, aml_name("INPT"));
+        aml_append(method, aml_store(pkg, aml_local(0)));
+
+        com_call = aml_call5(NVDIMM_COMMON_DSM,
+                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
+                            aml_int(1), aml_int(5), aml_local(0),
+                            aml_int(handle));
+        aml_append(method, aml_store(com_call, aml_local(3)));
+        field = aml_create_dword_field(aml_local(3), aml_int(0), "STTS");
+        aml_append(method, field);
+        field = aml_create_field(aml_local(3), aml_int(32),
+                                 aml_shiftleft(aml_name("LEN"), aml_int(3)),
+                                 "LDAT");
+        aml_append(method, field);
+        aml_append(method, aml_name_decl("LSA", aml_buffer(0, NULL)));
+        aml_append(method, aml_to_buffer(aml_name("LDAT"), aml_name("LSA")));
+
+        pkg = aml_package(2);
+        aml_append(pkg, aml_name("STTS"));
+        aml_append(pkg, aml_name("LSA"));
+
+        aml_append(method, aml_store(pkg, aml_local(1)));
+        aml_append(method, aml_return(aml_local(1)));
+
+        aml_append(nvdimm_dev, method);
+
+        /* _LSW */
+        method = aml_method("_LSW", 3, AML_SERIALIZED);
+        aml_append(method, aml_store(aml_arg(2), aml_local(2)));
+        aml_append(method, aml_name_decl("INPT", aml_buffer(8, NULL)));
+        field = aml_create_dword_field(aml_name("INPT"),
+                                                  aml_int(0), "OFST");
+        aml_append(method, field);
+        field = aml_create_dword_field(aml_name("INPT"),
+                                                  aml_int(4), "TLEN");
+        aml_append(method, field);
+        aml_append(method, aml_store(aml_arg(0), aml_name("OFST")));
+        aml_append(method, aml_store(aml_arg(1), aml_name("TLEN")));
+
+        aml_append(method, aml_concatenate(aml_name("INPT"), aml_local(2),
+                                            aml_name("INPT")));
+        pkg = aml_package(1);
+        aml_append(pkg, aml_name("INPT"));
+        aml_append(method, aml_store(pkg, aml_local(0)));
+        com_call = aml_call5(NVDIMM_COMMON_DSM,
+                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
+                            aml_int(1), aml_int(6), aml_local(0),
+                            aml_int(handle));
+        aml_append(method, aml_store(com_call, aml_local(3)));
+        field = aml_create_dword_field(aml_local(3), aml_int(0), "STTS");
+        aml_append(method, field);
+        aml_append(method, aml_return(aml_name("STTS")));
+
+        aml_append(nvdimm_dev, method);
+
         nvdimm_build_device_dsm(nvdimm_dev, handle);
         aml_append(root_dev, nvdimm_dev);
     }
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
                   ` (3 preceding siblings ...)
  2022-09-22 12:21 ` [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods Robert Hoo
@ 2022-09-22 12:21 ` Robert Hoo
  2022-09-22 12:29   ` Robert Hoo
  2022-10-26 14:45   ` Michael S. Tsirkin
  4 siblings, 2 replies; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:21 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu
  Cc: qemu-devel, robert.hu, Robert Hoo

And empty bios-tables-test-allowed-diff.h.

Diff of ASL form, from qtest testlog.txt:

--- /tmp/asl-RFWZS1.dsl	2022-09-22 18:25:06.191519589 +0800
+++ /tmp/asl-B1ZZS1.dsl	2022-09-22 18:25:06.187519182 +0800
@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180629 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Thu Sep 22 18:25:06 2022
+ * Disassembly of /tmp/aml-YYZZS1, Thu Sep 22 18:25:06 2022
  *
  * Original Table Header:
  *     Signature        "SSDT"
- *     Length           0x000002DE (734)
+ *     Length           0x00000717 (1815)
  *     Revision         0x01
- *     Checksum         0x56
+ *     Checksum         0xBC
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "NVDIMM"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
 {
     Scope (\_SB)
     {
         Device (NVDR)
         {
             Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
             Method (NCAL, 5, Serialized)
             {
                 Local6 = MEMA /* \MEMA */
@@ -49,52 +49,52 @@
                     ODAT,   32736
                 }

                 If ((Arg4 == Zero))
                 {
                     Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
                 }
                 ElseIf ((Arg4 == 0x00010000))
                 {
                     Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
                 }
                 Else
                 {
                     Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
                 }

-                If (((Local6 == Zero) | (Arg0 != Local0)))
+                If (((Local6 == Zero) || (Arg0 != Local0)))
                 {
                     If ((Arg2 == Zero))
                     {
                         Return (Buffer (One)
                         {
                              0x00                                             // .
                         })
                     }

                     Return (Buffer (One)
                     {
                          0x01                                             // .
                     })
                 }

                 HDLE = Arg4
                 REVS = Arg1
                 FUNC = Arg2
-                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
+                If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3) == One)))
                 {
                     Local2 = Arg3 [Zero]
                     Local3 = DerefOf (Local2)
                     FARG = Local3
                 }

                 NTFI = Local6
                 Local1 = (RLEN - 0x04)
                 If ((Local1 < 0x08))
                 {
                     Local2 = Zero
                     Name (TBUF, Buffer (One)
                     {
                          0x00                                             // .
                     })
                     Local7 = Buffer (Zero){}
@@ -161,45 +161,234 @@
                     Else
                     {
                         If ((Local1 == Zero))
                         {
                             Return (Local2)
                         }

                         Local3 += Local1
                         Concatenate (Local2, Local0, Local2)
                     }
                 }
             }

             Device (NV00)
             {
                 Name (_ADR, One)  // _ADR: Address
+                Method (_LSI, 0, Serialized)  // _LSI: Label Storage Information
+                {
+                    Local0 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x04, Zero, One)
+                    CreateDWordField (Local0, Zero, STTS)
+                    CreateDWordField (Local0, 0x04, SLSA)
+                    CreateDWordField (Local0, 0x08, MAXT)
+                    Local1 = Package (0x03)
+                        {
+                            STTS,
+                            SLSA,
+                            MAXT
+                        }
+                    Return (Local1)
+                }
+
+                Method (_LSR, 2, Serialized)  // _LSR: Label Storage Read
+                {
+                    Name (INPT, Buffer (0x08)
+                    {
+                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
+                    })
+                    CreateDWordField (INPT, Zero, OFST)
+                    CreateDWordField (INPT, 0x04, LEN)
+                    OFST = Arg0
+                    LEN = Arg1
+                    Local0 = Package (0x01)
+                        {
+                            INPT
+                        }
+                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x05, Local0, One)
+                    CreateDWordField (Local3, Zero, STTS)
+                    CreateField (Local3, 0x20, (LEN << 0x03), LDAT)
+                    Name (LSA, Buffer (Zero){})
+                    ToBuffer (LDAT, LSA) /* \_SB_.NVDR.NV00._LSR.LSA_ */
+                    Local1 = Package (0x02)
+                        {
+                            STTS,
+                            LSA
+                        }
+                    Return (Local1)
+                }
+
+                Method (_LSW, 3, Serialized)  // _LSW: Label Storage Write
+                {
+                    Local2 = Arg2
+                    Name (INPT, Buffer (0x08)
+                    {
+                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
+                    })
+                    CreateDWordField (INPT, Zero, OFST)
+                    CreateDWordField (INPT, 0x04, TLEN)
+                    OFST = Arg0
+                    TLEN = Arg1
+                    Concatenate (INPT, Local2, INPT) /* \_SB_.NVDR.NV00._LSW.INPT */
+                    Local0 = Package (0x01)
+                        {
+                            INPT
+                        }
+                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x06, Local0, One)
+                    CreateDWordField (Local3, Zero, STTS)
+                    Return (STTS) /* \_SB_.NVDR.NV00._LSW.STTS */
+                }
+
(iterates in each NV)

Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
---
 tests/data/acpi/pc/SSDT.dimmpxm             | Bin 734 -> 1815 bytes
 tests/data/acpi/q35/SSDT.dimmpxm            | Bin 734 -> 1815 bytes
 tests/qtest/bios-tables-test-allowed-diff.h |   2 --
 3 files changed, 2 deletions(-)

diff --git a/tests/data/acpi/pc/SSDT.dimmpxm b/tests/data/acpi/pc/SSDT.dimmpxm
index ac55387d57e48adb99eb738a102308688a262fb8..70f133412f5e0aa128ab210245a8de7304eeb843 100644
GIT binary patch
literal 1815
zcmdUwyKmD_6vnUPv~g}y6emHgc**|(X$OSF0FILox3Lr1ZmHx-examI3c8|YVC!RO
z2@)c;%774ZDvwC)2sTzGCN_pj>?}wOz&%bMqC!xRK#<|wbI(0K`Q7hx6kRVFqX~qV
z7sa|%)dh8?Br6KtBZP{x4GGpv_2!(V7cFzGeuJKCoK=-eBcjxh3x)9sl%G1ON@8t<
zC}l-#nk#BUt~04IjN>%dL<KcdC}Xaspw6mBMHbA}GjPCGOSQ6~m1lIJGObENMbxgY
zd`g(B+2~ZOl~ti$5{;G5iQtsKhzOs<nect)eDBFFfA>xHlK*k;x!u1QobwmcfE+b^
zczo}A|8-XCzLj4+n|SHk{n4mic$$>>kzKym<B*Vk)U<=Kp5H`U{=6L|{Wc1DmWcvG
z76FVb02yfmT5$S-f4_s{{ziu(n;nE)vhI4s17gyIJ1qk(jyu7HZ3lA%xtvj)uE0pb
z$53nM?6&KW^-Z{ri#Fj5p`{kAt=n$cB6l3jBFD@@19IxL9zw`xtdg$8LlAg=q1{28
zrW+#4D+#S48%eHS(G5iAVIj~13LO=IVY0&vbVM52T^rF6(*yzx3({MDR0%04*|42u
z2kyc74pk$D%$$vdh>qe^LJ0ZG7X5M#F6I*C?GzXSG@cDl2fPncQ;69=?`MKx80Oyc
z9B;|BU2{zuQ)dbV&Js%+lfN=#)pVIV;6G{<gX4%9U>kbZ#&Nx-i*)4_an>N&6Rd6+
zI@DnAgic;g(t#T0WVK=NDa_GVIQn#<fIx{T!*ObvwI|*}lvAOg$NmA!kj;2qj|yh!
zX3nG1z=PDg8a0li5EfPCA#5NgSsa5-$boD!LCLPANZb86oIwZg!$H0TWG)1949wv}
z%n%5UzDSI@Rs|ErBNK2eFCN1M9Qzd;CjYDrIQIKKO#MY44mk%#@ZbKTacs|tiGdUB
c@tk1)B`4Vb#EApW?>oVA@DG+o@4h6y0>WY85C8xG

delta 135
zcmbQvcaN1TIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}s5Bn$um

diff --git a/tests/data/acpi/q35/SSDT.dimmpxm b/tests/data/acpi/q35/SSDT.dimmpxm
index 98e6f0e3f3bb02dd419e36bdd1db9b94c728c406..9ea4e0d0ceaa8a5cbd706afb6d49de853fafe654 100644
GIT binary patch
literal 1815
zcmdUw%WD%+6vppl(q?j#N+yZ4_+tJ8(=J4Cp_55srp-*k%rq9JFfU2kq{_wCg}Xi$
ztr5g@s0$I9lvx(s3+~*ya^=3@R@?|K)O)5cETUCVG>dc3J@?GX?|$Ee=z7T*O(4YV
z6zft|7u04+RusBN2o+}<60Di(?O97NTIOo~7CqNEt16d9M5!Sc3gZ(fKXqD_#M%f^
z%8J-Bm(_+`XHsJr$7!yK3TmZL##~83omGvBESM|j;DD``YGpwyH+7*htx7^g)UGdo
zN|-Cz=v1qfRiR!IjpfgY;Ecb32%p25@LlF&|Jg2o|4sIa|8e$(J-8fP@E6j695sA+
z`rzi^byn)Vm0vxdc<I`M(WqY7NlN_4F5mBSNJu|v*}+)fZ=p?p&JL1(2ZcP#M1dg-
z07mA4jC24kIQz(d*u`;wy~~h|E<!F@b3Nh#F=@e_mVg$=o#4`zgE@j+&L~b-U?kyV
zsJ(rD%XP@w23*HQ8*qluVjI@>T{mo#dk$uiW9Fa%IdxhOA>=bwNmt?_2s}66=^{?k
z4H4y)gjSJ_Bv-HK1|oB?5a<Dgjtjsr*<l7cB8}{xjp&GJ0s)2v=}kYXgcOvl+s={$
z_uzbosu4qG&c;GSM{z14g#1;DemMsha|!ac3k(4o&xWT1-iN6v#2lOtGQltmbMJVL
zx9HlgxhjpR%|d~*#FED3uMJr>UFHt?j~m6{IAZp&4ZUaMxL(smx^jv*W034ARyPbC
zYOr@gCod=IKn-)U+A#PO=IARNeR@zpphT46IJL~$7jHhwsZh{k|A1x4X1tz91v7Lr
z=TT|kLF!$N8plxxi>mS%HjtAnjzK5nKsK46WH(Zz<Nh4Zpo0(KAYTMB7Xmo}=I{|_
z2n5GpB*t8=f(hf12{@J)Pv8QM{fZ5ff7S*Z`+Xm#{-O^@oO?#_-~OU;Y~P8AJtx?c
bIl=x*PO$%p6NjANcY@{MA1saDe@T1=QL*6=

delta 135
zcmbQvcaN1TIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}VOBm4jW

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index eb8bae1407..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,3 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/pc/SSDT.dimmpxm",
-"tests/data/acpi/q35/SSDT.dimmpxm",
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-22 12:21 ` [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries Robert Hoo
@ 2022-09-22 12:29   ` Robert Hoo
  2022-09-26 13:22     ` Igor Mammedov
  2022-10-26 14:45   ` Michael S. Tsirkin
  1 sibling, 1 reply; 17+ messages in thread
From: Robert Hoo @ 2022-09-22 12:29 UTC (permalink / raw)
  To: imammedo, mst, xiaoguangrong.eric, ani, jingqi.liu; +Cc: qemu-devel, robert.hu

On Thu, 2022-09-22 at 20:21 +0800, Robert Hoo wrote:
> And empty bios-tables-test-allowed-diff.h.
> 
> Diff of ASL form, from qtest testlog.txt:
> 
> --- /tmp/asl-RFWZS1.dsl	2022-09-22 18:25:06.191519589 +0800
> +++ /tmp/asl-B1ZZS1.dsl	2022-09-22 18:25:06.187519182 +0800
> @@ -1,30 +1,30 @@
>  /*
>   * Intel ACPI Component Architecture
>   * AML/ASL+ Disassembler version 20180629 (64-bit version)
>   * Copyright (c) 2000 - 2018 Intel Corporation
>   *
>   * Disassembling to symbolic ASL+ operators
>   *
> - * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Thu Sep 22
> 18:25:06 2022
> + * Disassembly of /tmp/aml-YYZZS1, Thu Sep 22 18:25:06 2022
>   *
>   * Original Table Header:
>   *     Signature        "SSDT"
> - *     Length           0x000002DE (734)
> + *     Length           0x00000717 (1815)
>   *     Revision         0x01
> - *     Checksum         0x56
> + *     Checksum         0xBC
>   *     OEM ID           "BOCHS "
>   *     OEM Table ID     "NVDIMM"
>   *     OEM Revision     0x00000001 (1)
>   *     Compiler ID      "BXPC"
>   *     Compiler Version 0x00000001 (1)
>   */
>  DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
>  {
>      Scope (\_SB)
>      {
>          Device (NVDR)
>          {
>              Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  //
> _HID: Hardware ID
>              Method (NCAL, 5, Serialized)
>              {
>                  Local6 = MEMA /* \MEMA */
> @@ -49,52 +49,52 @@
>                      ODAT,   32736
>                  }
> 
>                  If ((Arg4 == Zero))
>                  {
>                      Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-
> 123b93f75cba")
>                  }
>                  ElseIf ((Arg4 == 0x00010000))
>                  {
>                      Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-
> 49c4af32bd62")
>                  }
>                  Else
>                  {
>                      Local0 = ToUUID ("4309ac30-0d11-11e4-9191-
> 0800200c9a66")
>                  }
> 
> -                If (((Local6 == Zero) | (Arg0 != Local0)))
> +                If (((Local6 == Zero) || (Arg0 != Local0)))
>                  {
>                      If ((Arg2 == Zero))
>                      {
>                          Return (Buffer (One)
>                          {
>                               0x00                                   
>           // .
>                          })
>                      }
> 
>                      Return (Buffer (One)
>                      {
>                           0x01                                       
>       // .
>                      })
>                  }
> 
>                  HDLE = Arg4
>                  REVS = Arg1
>                  FUNC = Arg2
> -                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) ==
> One)))
> +                If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3)
> == One)))
>                  {
>                      Local2 = Arg3 [Zero]
>                      Local3 = DerefOf (Local2)
>                      FARG = Local3
>                  }
> 
>                  NTFI = Local6
>                  Local1 = (RLEN - 0x04)
>                  If ((Local1 < 0x08))
>                  {
>                      Local2 = Zero
>                      Name (TBUF, Buffer (One)
>                      {
>                           0x00                                       
>       // .
>                      })
>                      Local7 = Buffer (Zero){}
> @@ -161,45 +161,234 @@
>                      Else
>                      {
>                          If ((Local1 == Zero))
>                          {
>                              Return (Local2)
>                          }
> 
>                          Local3 += Local1
>                          Concatenate (Local2, Local0, Local2)
>                      }
>                  }
>              }
> 
>              Device (NV00)
>              {
>                  Name (_ADR, One)  // _ADR: Address
> +                Method (_LSI, 0, Serialized)  // _LSI: Label Storage
> Information
> +                {
> +                    Local0 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> 0800200c9a66"), One, 0x04, Zero, One)
> +                    CreateDWordField (Local0, Zero, STTS)
> +                    CreateDWordField (Local0, 0x04, SLSA)
> +                    CreateDWordField (Local0, 0x08, MAXT)
> +                    Local1 = Package (0x03)
> +                        {
> +                            STTS,
> +                            SLSA,
> +                            MAXT
> +                        }
> +                    Return (Local1)
> +                }
> +
> +                Method (_LSR, 2, Serialized)  // _LSR: Label Storage
> Read
> +                {
> +                    Name (INPT, Buffer (0x08)
> +                    {
> +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> 0x00   // ........
> +                    })
> +                    CreateDWordField (INPT, Zero, OFST)
> +                    CreateDWordField (INPT, 0x04, LEN)
> +                    OFST = Arg0
> +                    LEN = Arg1
> +                    Local0 = Package (0x01)
> +                        {
> +                            INPT
> +                        }
> +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> 0800200c9a66"), One, 0x05, Local0, One)
> +                    CreateDWordField (Local3, Zero, STTS)
> +                    CreateField (Local3, 0x20, (LEN << 0x03), LDAT)
> +                    Name (LSA, Buffer (Zero){})
> +                    ToBuffer (LDAT, LSA) /*
> \_SB_.NVDR.NV00._LSR.LSA_ */
> +                    Local1 = Package (0x02)
> +                        {
> +                            STTS,
> +                            LSA
> +                        }
Hi Igor,

Here is a little different from original proposal 
https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/

   Local1 = Package (0x2) {STTS, toBuffer(LDAT)}

Because in my test, Linux guest complains:

[    3.884656] ACPI Error: AE_SUPPORT, Expressions within package
elements are not supported (20220331/dspkginit-172)
[    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR due to
previous error (AE_SUPPORT) (20220331/psparse-531)


So I have to move toBuffer() out of Package{} and name LSA to hold the
buffer. If you have better idea, pls. let me know.

> +                    Return (Local1)
> +                }
> +
> +                Method (_LSW, 3, Serialized)  // _LSW: Label Storage
> Write
> +                {
> +                    Local2 = Arg2
> +                    Name (INPT, Buffer (0x08)
> +                    {
> +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> 0x00   // ........
> +                    })
> +                    CreateDWordField (INPT, Zero, OFST)
> +                    CreateDWordField (INPT, 0x04, TLEN)
> +                    OFST = Arg0
> +                    TLEN = Arg1
> +                    Concatenate (INPT, Local2, INPT) /*
> \_SB_.NVDR.NV00._LSW.INPT */
> +                    Local0 = Package (0x01)
> +                        {
> +                            INPT
> +                        }
> +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> 0800200c9a66"), One, 0x06, Local0, One)
> +                    CreateDWordField (Local3, Zero, STTS)
> +                    Return (STTS) /* \_SB_.NVDR.NV00._LSW.STTS */
> +                }
> +
> (iterates in each NV)
> 
> Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
> ---
>  tests/data/acpi/pc/SSDT.dimmpxm             | Bin 734 -> 1815 bytes
>  tests/data/acpi/q35/SSDT.dimmpxm            | Bin 734 -> 1815 bytes
>  tests/qtest/bios-tables-test-allowed-diff.h |   2 --
>  3 files changed, 2 deletions(-)
> 
> diff --git a/tests/data/acpi/pc/SSDT.dimmpxm
> b/tests/data/acpi/pc/SSDT.dimmpxm
> index
> ac55387d57e48adb99eb738a102308688a262fb8..70f133412f5e0aa128ab210245a
> 8de7304eeb843 100644
> GIT binary patch
> literal 1815
> zcmdUwyKmD_6vnUPv~g}y6emHgc**|(X$OSF0FILox3Lr1ZmHx-examI3c8|YVC!RO
> z2@)c;%774ZDvwC)2sTzGCN_pj>?}wOz&%bMqC!xRK#<|wbI(0K`Q7hx6kRVFqX~qV
> z7sa|%)dh8?Br6KtBZP{x4GGpv_2!(V7cFzGeuJKCoK=-eBcjxh3x)9sl%G1ON@8t<
> zC}l-#nk#BUt~04IjN>%dL<KcdC}Xaspw6mBMHbA}GjPCGOSQ6~m1lIJGObENMbxgY
> zd`g(B+2~ZOl~ti$5{;G5iQtsKhzOs<nect)eDBFFfA>xHlK*k;x!u1QobwmcfE+b^
> zczo}A|8-XCzLj4+n|SHk{n4mic$$>>kzKym<B*Vk)U<=Kp5H`U{=6L|{Wc1DmWcvG
> z76FVb02yfmT5$S-f4_s{{ziu(n;nE)vhI4s17gyIJ1qk(jyu7HZ3lA%xtvj)uE0pb
> z$53nM?6&KW^-Z{ri#Fj5p`{kAt=n$cB6l3jBFD@@19IxL9zw`xtdg$8LlAg=q1{28
> zrW+#4D+#S48%eHS(G5iAVIj~13LO=IVY0&vbVM52T^rF6(*yzx3({MDR0%04*|42u
> z2kyc74pk$D%$$vdh>qe^LJ0ZG7X5M#F6I*C?GzXSG@cDl2fPncQ;69=?`MKx80Oyc
> z9B;|BU2{zuQ)dbV&Js%+lfN=#)pVIV;6G{<gX4%9U>kbZ#&Nx-i*)4_an>N&6Rd6+
> zI@DnAgic;g(t#T0WVK=NDa_GVIQn#<fIx{T!*ObvwI|*}lvAOg$NmA!kj;2qj|yh!
> zX3nG1z=PDg8a0li5EfPCA#5NgSsa5-$boD!LCLPANZb86oIwZg!$H0TWG)1949wv}
> z%n%5UzDSI@Rs|ErBNK2eFCN1M9Qzd;CjYDrIQIKKO#MY44mk%#@ZbKTacs|tiGdUB
> c@tk1)B`4Vb#EApW?>oVA@DG+o@4h6y0>WY85C8xG
> 
> delta 135
> zcmbQvcaN1TIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}s5Bn$um
> 
> diff --git a/tests/data/acpi/q35/SSDT.dimmpxm
> b/tests/data/acpi/q35/SSDT.dimmpxm
> index
> 98e6f0e3f3bb02dd419e36bdd1db9b94c728c406..9ea4e0d0ceaa8a5cbd706afb6d4
> 9de853fafe654 100644
> GIT binary patch
> literal 1815
> zcmdUw%WD%+6vppl(q?j#N+yZ4_+tJ8(=J4Cp_55srp-*k%rq9JFfU2kq{_wCg}Xi$
> ztr5g@s0$I9lvx(s3+~*ya^=3@R@?|K)O)5cETUCVG>dc3J@?GX?|$Ee=z7T*O(4YV
> z6zft|7u04+RusBN2o+}<60Di(?O97NTIOo~7CqNEt16d9M5!Sc3gZ(fKXqD_#M%f^
> z%8J-Bm(_+`XHsJr$7!yK3TmZL##~83omGvBESM|j;DD``YGpwyH+7*htx7^g)UGdo
> zN|-Cz=v1qfRiR!IjpfgY;Ecb32%p25@LlF&|Jg2o|4sIa|8e$(J-8fP@E6j695sA+
> z`rzi^byn)Vm0vxdc<I`M(WqY7NlN_4F5mBSNJu|v*}+)fZ=p?p&JL1(2ZcP#M1dg-
> z07mA4jC24kIQz(d*u`;wy~~h|E<!F@b3Nh#F=@e_mVg$=o#4`zgE@j+&L~b-U?kyV
> zsJ(rD%XP@w23*HQ8*qluVjI@>T{mo#dk$uiW9Fa%IdxhOA>=bwNmt?_2s}66=^{?k
> z4H4y)gjSJ_Bv-HK1|oB?5a<Dgjtjsr*<l7cB8}{xjp&GJ0s)2v=}kYXgcOvl+s={$
> z_uzbosu4qG&c;GSM{z14g#1;DemMsha|!ac3k(4o&xWT1-iN6v#2lOtGQltmbMJVL
> zx9HlgxhjpR%|d~*#FED3uMJr>UFHt?j~m6{IAZp&4ZUaMxL(smx^jv*W034ARyPbC
> zYOr@gCod=IKn-)U+A#PO=IARNeR@zpphT46IJL~$7jHhwsZh{k|A1x4X1tz91v7Lr
> z=TT|kLF!$N8plxxi>mS%HjtAnjzK5nKsK46WH(Zz<Nh4Zpo0(KAYTMB7Xmo}=I{|_
> z2n5GpB*t8=f(hf12{@J)Pv8QM{fZ5ff7S*Z`+Xm#{-O^@oO?#_-~OU;Y~P8AJtx?c
> bIl=x*PO$%p6NjANcY@{MA1saDe@T1=QL*6=
> 
> delta 135
> zcmbQvcaN1TIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}VOBm4jW
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
> b/tests/qtest/bios-tables-test-allowed-diff.h
> index eb8bae1407..dfb8523c8b 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1,3 +1 @@
>  /* List of comma-separated changed AML files to ignore */
> -"tests/data/acpi/pc/SSDT.dimmpxm",
> -"tests/data/acpi/q35/SSDT.dimmpxm",



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-22 12:29   ` Robert Hoo
@ 2022-09-26 13:22     ` Igor Mammedov
  2022-09-27  0:30       ` Robert Hoo
  0 siblings, 1 reply; 17+ messages in thread
From: Igor Mammedov @ 2022-09-26 13:22 UTC (permalink / raw)
  To: Robert Hoo
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, 22 Sep 2022 20:29:12 +0800
Robert Hoo <robert.hu@linux.intel.com> wrote:

> On Thu, 2022-09-22 at 20:21 +0800, Robert Hoo wrote:
> > And empty bios-tables-test-allowed-diff.h.
> > 
> > Diff of ASL form, from qtest testlog.txt:
> > 
> > --- /tmp/asl-RFWZS1.dsl	2022-09-22 18:25:06.191519589 +0800
> > +++ /tmp/asl-B1ZZS1.dsl	2022-09-22 18:25:06.187519182 +0800
> > @@ -1,30 +1,30 @@
> >  /*
> >   * Intel ACPI Component Architecture
> >   * AML/ASL+ Disassembler version 20180629 (64-bit version)
> >   * Copyright (c) 2000 - 2018 Intel Corporation
> >   *
> >   * Disassembling to symbolic ASL+ operators
> >   *
> > - * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Thu Sep 22
> > 18:25:06 2022
> > + * Disassembly of /tmp/aml-YYZZS1, Thu Sep 22 18:25:06 2022
> >   *
> >   * Original Table Header:
> >   *     Signature        "SSDT"
> > - *     Length           0x000002DE (734)
> > + *     Length           0x00000717 (1815)
> >   *     Revision         0x01
> > - *     Checksum         0x56
> > + *     Checksum         0xBC
> >   *     OEM ID           "BOCHS "
> >   *     OEM Table ID     "NVDIMM"
> >   *     OEM Revision     0x00000001 (1)
> >   *     Compiler ID      "BXPC"
> >   *     Compiler Version 0x00000001 (1)
> >   */
> >  DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
> >  {
> >      Scope (\_SB)
> >      {
> >          Device (NVDR)
> >          {
> >              Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  //
> > _HID: Hardware ID
> >              Method (NCAL, 5, Serialized)
> >              {
> >                  Local6 = MEMA /* \MEMA */
> > @@ -49,52 +49,52 @@
> >                      ODAT,   32736
> >                  }
> > 
> >                  If ((Arg4 == Zero))
> >                  {
> >                      Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-
> > 123b93f75cba")
> >                  }
> >                  ElseIf ((Arg4 == 0x00010000))
> >                  {
> >                      Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-
> > 49c4af32bd62")
> >                  }
> >                  Else
> >                  {
> >                      Local0 = ToUUID ("4309ac30-0d11-11e4-9191-
> > 0800200c9a66")
> >                  }
> > 
> > -                If (((Local6 == Zero) | (Arg0 != Local0)))
> > +                If (((Local6 == Zero) || (Arg0 != Local0)))
> >                  {
> >                      If ((Arg2 == Zero))
> >                      {
> >                          Return (Buffer (One)
> >                          {
> >                               0x00                                   
> >           // .
> >                          })
> >                      }
> > 
> >                      Return (Buffer (One)
> >                      {
> >                           0x01                                       
> >       // .
> >                      })
> >                  }
> > 
> >                  HDLE = Arg4
> >                  REVS = Arg1
> >                  FUNC = Arg2
> > -                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) ==
> > One)))
> > +                If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3)
> > == One)))
> >                  {
> >                      Local2 = Arg3 [Zero]
> >                      Local3 = DerefOf (Local2)
> >                      FARG = Local3
> >                  }
> > 
> >                  NTFI = Local6
> >                  Local1 = (RLEN - 0x04)
> >                  If ((Local1 < 0x08))
> >                  {
> >                      Local2 = Zero
> >                      Name (TBUF, Buffer (One)
> >                      {
> >                           0x00                                       
> >       // .
> >                      })
> >                      Local7 = Buffer (Zero){}
> > @@ -161,45 +161,234 @@
> >                      Else
> >                      {
> >                          If ((Local1 == Zero))
> >                          {
> >                              Return (Local2)
> >                          }
> > 
> >                          Local3 += Local1
> >                          Concatenate (Local2, Local0, Local2)
> >                      }
> >                  }
> >              }
> > 
> >              Device (NV00)
> >              {
> >                  Name (_ADR, One)  // _ADR: Address
> > +                Method (_LSI, 0, Serialized)  // _LSI: Label Storage
> > Information
> > +                {
> > +                    Local0 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> > 0800200c9a66"), One, 0x04, Zero, One)
> > +                    CreateDWordField (Local0, Zero, STTS)
> > +                    CreateDWordField (Local0, 0x04, SLSA)
> > +                    CreateDWordField (Local0, 0x08, MAXT)
> > +                    Local1 = Package (0x03)
> > +                        {
> > +                            STTS,
> > +                            SLSA,
> > +                            MAXT
> > +                        }
> > +                    Return (Local1)
> > +                }
> > +
> > +                Method (_LSR, 2, Serialized)  // _LSR: Label Storage
> > Read
> > +                {
> > +                    Name (INPT, Buffer (0x08)
> > +                    {
> > +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> > 0x00   // ........
> > +                    })
> > +                    CreateDWordField (INPT, Zero, OFST)
> > +                    CreateDWordField (INPT, 0x04, LEN)
> > +                    OFST = Arg0
> > +                    LEN = Arg1
> > +                    Local0 = Package (0x01)
> > +                        {
> > +                            INPT
> > +                        }
> > +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> > 0800200c9a66"), One, 0x05, Local0, One)
> > +                    CreateDWordField (Local3, Zero, STTS)
> > +                    CreateField (Local3, 0x20, (LEN << 0x03), LDAT)
> > +                    Name (LSA, Buffer (Zero){})
> > +                    ToBuffer (LDAT, LSA) /*
> > \_SB_.NVDR.NV00._LSR.LSA_ */
> > +                    Local1 = Package (0x02)
> > +                        {
> > +                            STTS,
> > +                            LSA
> > +                        }  
> Hi Igor,
> 
> Here is a little different from original proposal 
> https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> 
>    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> 
> Because in my test, Linux guest complains:
> 
> [    3.884656] ACPI Error: AE_SUPPORT, Expressions within package
> elements are not supported (20220331/dspkginit-172)
> [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR due to
> previous error (AE_SUPPORT) (20220331/psparse-531)
> 
> 
> So I have to move toBuffer() out of Package{} and name LSA to hold the
> buffer. If you have better idea, pls. let me know.

Would something like following work?

LocalX =  Buffer (Zero){}
LocalY = Package (0x01) { LocalX }

> 
> > +                    Return (Local1)
> > +                }
> > +
> > +                Method (_LSW, 3, Serialized)  // _LSW: Label Storage
> > Write
> > +                {
> > +                    Local2 = Arg2
> > +                    Name (INPT, Buffer (0x08)
> > +                    {
> > +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> > 0x00   // ........
> > +                    })
> > +                    CreateDWordField (INPT, Zero, OFST)
> > +                    CreateDWordField (INPT, 0x04, TLEN)
> > +                    OFST = Arg0
> > +                    TLEN = Arg1
> > +                    Concatenate (INPT, Local2, INPT) /*
> > \_SB_.NVDR.NV00._LSW.INPT */
> > +                    Local0 = Package (0x01)
> > +                        {
> > +                            INPT
> > +                        }
> > +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-
> > 0800200c9a66"), One, 0x06, Local0, One)
> > +                    CreateDWordField (Local3, Zero, STTS)
> > +                    Return (STTS) /* \_SB_.NVDR.NV00._LSW.STTS */
> > +                }
> > +
> > (iterates in each NV)
> > 
> > Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
> > ---
> >  tests/data/acpi/pc/SSDT.dimmpxm             | Bin 734 -> 1815 bytes
> >  tests/data/acpi/q35/SSDT.dimmpxm            | Bin 734 -> 1815 bytes
> >  tests/qtest/bios-tables-test-allowed-diff.h |   2 --
> >  3 files changed, 2 deletions(-)
> > 
> > diff --git a/tests/data/acpi/pc/SSDT.dimmpxm
> > b/tests/data/acpi/pc/SSDT.dimmpxm
> > index
> > ac55387d57e48adb99eb738a102308688a262fb8..70f133412f5e0aa128ab210245a
> > 8de7304eeb843 100644
> > GIT binary patch
> > literal 1815
> > zcmdUwyKmD_6vnUPv~g}y6emHgc**|(X$OSF0FILox3Lr1ZmHx-examI3c8|YVC!RO  
> > z2@)c;%774ZDvwC)2sTzGCN_pj>?}wOz&%bMqC!xRK#<|wbI(0K`Q7hx6kRVFqX~qV  
> > z7sa|%)dh8?Br6KtBZP{x4GGpv_2!(V7cFzGeuJKCoK=-eBcjxh3x)9sl%G1ON@8t<
> > zC}l-#nk#BUt~04IjN>%dL<KcdC}Xaspw6mBMHbA}GjPCGOSQ6~m1lIJGObENMbxgY
> > zd`g(B+2~ZOl~ti$5{;G5iQtsKhzOs<nect)eDBFFfA>xHlK*k;x!u1QobwmcfE+b^
> > zczo}A|8-XCzLj4+n|SHk{n4mic$$>>kzKym<B*Vk)U<=Kp5H`U{=6L|{Wc1DmWcvG
> > z76FVb02yfmT5$S-f4_s{{ziu(n;nE)vhI4s17gyIJ1qk(jyu7HZ3lA%xtvj)uE0pb
> > z$53nM?6&KW^-Z{ri#Fj5p`{kAt=n$cB6l3jBFD@@19IxL9zw`xtdg$8LlAg=q1{28
> > zrW+#4D+#S48%eHS(G5iAVIj~13LO=IVY0&vbVM52T^rF6(*yzx3({MDR0%04*|42u  
> > z2kyc74pk$D%$$vdh>qe^LJ0ZG7X5M#F6I*C?GzXSG@cDl2fPncQ;69=?`MKx80Oyc  
> > z9B;|BU2{zuQ)dbV&Js%+lfN=#)pVIV;6G{<gX4%9U>kbZ#&Nx-i*)4_an>N&6Rd6+
> > zI@DnAgic;g(t#T0WVK=NDa_GVIQn#<fIx{T!*ObvwI|*}lvAOg$NmA!kj;2qj|yh!
> > zX3nG1z=PDg8a0li5EfPCA#5NgSsa5-$boD!LCLPANZb86oIwZg!$H0TWG)1949wv}
> > z%n%5UzDSI@Rs|ErBNK2eFCN1M9Qzd;CjYDrIQIKKO#MY44mk%#@ZbKTacs|tiGdUB  
> > c@tk1)B`4Vb#EApW?>oVA@DG+o@4h6y0>WY85C8xG  
> > 
> > delta 135  
> > zcmbQvcaN1TIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I  
> > zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> > dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}s5Bn$um
> > 
> > diff --git a/tests/data/acpi/q35/SSDT.dimmpxm
> > b/tests/data/acpi/q35/SSDT.dimmpxm
> > index
> > 98e6f0e3f3bb02dd419e36bdd1db9b94c728c406..9ea4e0d0ceaa8a5cbd706afb6d4
> > 9de853fafe654 100644
> > GIT binary patch
> > literal 1815
> > zcmdUw%WD%+6vppl(q?j#N+yZ4_+tJ8(=J4Cp_55srp-*k%rq9JFfU2kq{_wCg}Xi$  
> > ztr5g@s0$I9lvx(s3+~*ya^=3@R@?|K)O)5cETUCVG>dc3J@?GX?|$Ee=z7T*O(4YV  
> > z6zft|7u04+RusBN2o+}<60Di(?O97NTIOo~7CqNEt16d9M5!Sc3gZ(fKXqD_#M%f^
> > z%8J-Bm(_+`XHsJr$7!yK3TmZL##~83omGvBESM|j;DD``YGpwyH+7*htx7^g)UGdo
> > zN|-Cz=v1qfRiR!IjpfgY;Ecb32%p25@LlF&|Jg2o|4sIa|8e$(J-8fP@E6j695sA+
> > z`rzi^byn)Vm0vxdc<I`M(WqY7NlN_4F5mBSNJu|v*}+)fZ=p?p&JL1(2ZcP#M1dg-
> > z07mA4jC24kIQz(d*u`;wy~~h|E<!F@b3Nh#F=@e_mVg$=o#4`zgE@j+&L~b-U?kyV  
> > zsJ(rD%XP@w23*HQ8*qluVjI@>T{mo#dk$uiW9Fa%IdxhOA>=bwNmt?_2s}66=^{?k  
> > z4H4y)gjSJ_Bv-HK1|oB?5a<Dgjtjsr*<l7cB8}{xjp&GJ0s)2v=}kYXgcOvl+s={$
> > z_uzbosu4qG&c;GSM{z14g#1;DemMsha|!ac3k(4o&xWT1-iN6v#2lOtGQltmbMJVL  
> > zx9HlgxhjpR%|d~*#FED3uMJr>UFHt?j~m6{IAZp&4ZUaMxL(smx^jv*W034ARyPbC  
> > zYOr@gCod=IKn-)U+A#PO=IARNeR@zpphT46IJL~$7jHhwsZh{k|A1x4X1tz91v7Lr  
> > z=TT|kLF!$N8plxxi>mS%HjtAnjzK5nKsK46WH(Zz<Nh4Zpo0(KAYTMB7Xmo}=I{|_  
> > z2n5GpB*t8=f(hf12{@J)Pv8QM{fZ5ff7S*Z`+Xm#{-O^@oO?#_-~OU;Y~P8AJtx?c
> > bIl=x*PO$%p6NjANcY@{MA1saDe@T1=QL*6=
> > 
> > delta 135
> > zcmbQvcaN1TIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> > zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> > dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}VOBm4jW
> > 
> > diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
> > b/tests/qtest/bios-tables-test-allowed-diff.h
> > index eb8bae1407..dfb8523c8b 100644
> > --- a/tests/qtest/bios-tables-test-allowed-diff.h
> > +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> > @@ -1,3 +1 @@
> >  /* List of comma-separated changed AML files to ignore */
> > -"tests/data/acpi/pc/SSDT.dimmpxm",
> > -"tests/data/acpi/q35/SSDT.dimmpxm",  
> 



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-26 13:22     ` Igor Mammedov
@ 2022-09-27  0:30       ` Robert Hoo
  2022-10-07 13:27         ` Robert Hoo
  0 siblings, 1 reply; 17+ messages in thread
From: Robert Hoo @ 2022-09-27  0:30 UTC (permalink / raw)
  To: Igor Mammedov
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:
> > > 0800200c9a66"), One, 0x05, Local0, One)
> > > +                    CreateDWordField (Local3, Zero, STTS)
> > > +                    CreateField (Local3, 0x20, (LEN << 0x03),
> > > LDAT)
> > > +                    Name (LSA, Buffer (Zero){})
> > > +                    ToBuffer (LDAT, LSA) /*
> > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > +                    Local1 = Package (0x02)
> > > +                        {
> > > +                            STTS,
> > > +                            LSA
> > > +                        }  
> > 
> > Hi Igor,
> > 
> > Here is a little different from original proposal 
> > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > 
> >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > 
> > Because in my test, Linux guest complains:
> > 
> > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within package
> > elements are not supported (20220331/dspkginit-172)
> > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR due
> > to
> > previous error (AE_SUPPORT) (20220331/psparse-531)
> > 
> > 
> > So I have to move toBuffer() out of Package{} and name LSA to hold
> > the
> > buffer. If you have better idea, pls. let me know.
> 
> Would something like following work?
> 
> LocalX =  Buffer (Zero){}
> LocalY = Package (0x01) { LocalX }


No, Package{} doesn't accept LocalX as elements.

PackageTerm :=
Package (
NumElements // Nothing | ByteConstExpr | TermArg => Integer
) {PackageList} => Package

PackageList :=
Nothing | <PackageElement PackageListTail>

PackageElement :=
DataObject | NameString



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-27  0:30       ` Robert Hoo
@ 2022-10-07 13:27         ` Robert Hoo
  2022-10-20  0:48           ` Robert Hoo
  0 siblings, 1 reply; 17+ messages in thread
From: Robert Hoo @ 2022-10-07 13:27 UTC (permalink / raw)
  To: Igor Mammedov
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

Ping...
On Tue, 2022-09-27 at 08:30 +0800, Robert Hoo wrote:
> On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:
> > > > 0800200c9a66"), One, 0x05, Local0, One)
> > > > +                    CreateDWordField (Local3, Zero, STTS)
> > > > +                    CreateField (Local3, 0x20, (LEN << 0x03),
> > > > LDAT)
> > > > +                    Name (LSA, Buffer (Zero){})
> > > > +                    ToBuffer (LDAT, LSA) /*
> > > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > > +                    Local1 = Package (0x02)
> > > > +                        {
> > > > +                            STTS,
> > > > +                            LSA
> > > > +                        }  
> > > 
> > > Hi Igor,
> > > 
> > > Here is a little different from original proposal 
> > > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > > 
> > >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > > 
> > > Because in my test, Linux guest complains:
> > > 
> > > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within package
> > > elements are not supported (20220331/dspkginit-172)
> > > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR
> > > due
> > > to
> > > previous error (AE_SUPPORT) (20220331/psparse-531)
> > > 
> > > 
> > > So I have to move toBuffer() out of Package{} and name LSA to
> > > hold
> > > the
> > > buffer. If you have better idea, pls. let me know.
> > 
> > Would something like following work?
> > 
> > LocalX =  Buffer (Zero){}
> > LocalY = Package (0x01) { LocalX }
> 
> 
> No, Package{} doesn't accept LocalX as elements.
> 
> PackageTerm :=
> Package (
> NumElements // Nothing | ByteConstExpr | TermArg => Integer
> ) {PackageList} => Package
> 
> PackageList :=
> Nothing | <PackageElement PackageListTail>
> 
> PackageElement :=
> DataObject | NameString



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-10-07 13:27         ` Robert Hoo
@ 2022-10-20  0:48           ` Robert Hoo
  2022-10-20 11:48             ` Igor Mammedov
  0 siblings, 1 reply; 17+ messages in thread
From: Robert Hoo @ 2022-10-20  0:48 UTC (permalink / raw)
  To: Igor Mammedov
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

Ping...
On Fri, 2022-10-07 at 21:27 +0800, Robert Hoo wrote:
> Ping...
> On Tue, 2022-09-27 at 08:30 +0800, Robert Hoo wrote:
> > On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:
> > > > > 0800200c9a66"), One, 0x05, Local0, One)
> > > > > +                    CreateDWordField (Local3, Zero, STTS)
> > > > > +                    CreateField (Local3, 0x20, (LEN <<
> > > > > 0x03),
> > > > > LDAT)
> > > > > +                    Name (LSA, Buffer (Zero){})
> > > > > +                    ToBuffer (LDAT, LSA) /*
> > > > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > > > +                    Local1 = Package (0x02)
> > > > > +                        {
> > > > > +                            STTS,
> > > > > +                            LSA
> > > > > +                        }  
> > > > 
> > > > Hi Igor,
> > > > 
> > > > Here is a little different from original proposal 
> > > > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > > > 
> > > >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > > > 
> > > > Because in my test, Linux guest complains:
> > > > 
> > > > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within
> > > > package
> > > > elements are not supported (20220331/dspkginit-172)
> > > > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR
> > > > due
> > > > to
> > > > previous error (AE_SUPPORT) (20220331/psparse-531)
> > > > 
> > > > 
> > > > So I have to move toBuffer() out of Package{} and name LSA to
> > > > hold
> > > > the
> > > > buffer. If you have better idea, pls. let me know.
> > > 
> > > Would something like following work?
> > > 
> > > LocalX =  Buffer (Zero){}
> > > LocalY = Package (0x01) { LocalX }
> > 
> > 
> > No, Package{} doesn't accept LocalX as elements.
> > 
> > PackageTerm :=
> > Package (
> > NumElements // Nothing | ByteConstExpr | TermArg => Integer
> > ) {PackageList} => Package
> > 
> > PackageList :=
> > Nothing | <PackageElement PackageListTail>
> > 
> > PackageElement :=
> > DataObject | NameString



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods
  2022-09-22 12:21 ` [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods Robert Hoo
@ 2022-10-20 11:45   ` Igor Mammedov
  0 siblings, 0 replies; 17+ messages in thread
From: Igor Mammedov @ 2022-10-20 11:45 UTC (permalink / raw)
  To: Robert Hoo
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, 22 Sep 2022 20:21:54 +0800
Robert Hoo <robert.hu@linux.intel.com> wrote:

> Recent ACPI spec [1] has defined NVDIMM Label Methods _LS{I,R,W}, which
> deprecates corresponding _DSM Functions defined by PMEM _DSM Interface spec
> [2].
> 
> Since the semantics of the new Label Methods are almost same as old _DSM
> methods, the implementations here simply wrapper old ones.
> 
> ASL form diff can be found in next patch of updating golden master
> binaries.
> 
> [1] ACPI Spec v6.4, 6.5.10 NVDIMM Label Methods
> https://uefi.org/sites/default/files/resources/ACPI_Spec_6_4_Jan22.pdf
> [2] Intel PMEM _DSM Interface Spec v2.0, 3.10 Deprecated Functions
> https://pmem.io/documents/IntelOptanePMem_DSM_Interface-V2.0.pdf
> 
> Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>

Reviewed-by: Igor Mammedov <imammedo@redhat.com>

> ---
>  hw/acpi/nvdimm.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 95 insertions(+)
> 
> diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
> index afff911c1e..a3b25a92f3 100644
> --- a/hw/acpi/nvdimm.c
> +++ b/hw/acpi/nvdimm.c
> @@ -1243,6 +1243,7 @@ static void nvdimm_build_fit(Aml *dev)
>  static void nvdimm_build_nvdimm_devices(Aml *root_dev, uint32_t ram_slots)
>  {
>      uint32_t slot;
> +    Aml *method, *pkg, *field, *com_call;
>  
>      for (slot = 0; slot < ram_slots; slot++) {
>          uint32_t handle = nvdimm_slot_to_handle(slot);
> @@ -1260,6 +1261,100 @@ static void nvdimm_build_nvdimm_devices(Aml *root_dev, uint32_t ram_slots)
>           */
>          aml_append(nvdimm_dev, aml_name_decl("_ADR", aml_int(handle)));
>  
> +        /*
> +         * ACPI v6.4: Section 6.5.10 NVDIMM Label Methods
> +         */
> +        /* _LSI */
> +        method = aml_method("_LSI", 0, AML_SERIALIZED);
> +        com_call = aml_call5(NVDIMM_COMMON_DSM,
> +                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
> +                            aml_int(1), aml_int(4), aml_int(0),
> +                            aml_int(handle));
> +        aml_append(method, aml_store(com_call, aml_local(0)));
> +
> +        aml_append(method, aml_create_dword_field(aml_local(0),
> +                                                  aml_int(0), "STTS"));
> +        aml_append(method, aml_create_dword_field(aml_local(0), aml_int(4),
> +                                                  "SLSA"));
> +        aml_append(method, aml_create_dword_field(aml_local(0), aml_int(8),
> +                                                  "MAXT"));
> +
> +        pkg = aml_package(3);
> +        aml_append(pkg, aml_name("STTS"));
> +        aml_append(pkg, aml_name("SLSA"));
> +        aml_append(pkg, aml_name("MAXT"));
> +        aml_append(method, aml_store(pkg, aml_local(1)));
> +        aml_append(method, aml_return(aml_local(1)));
> +
> +        aml_append(nvdimm_dev, method);
> +
> +        /* _LSR */
> +        method = aml_method("_LSR", 2, AML_SERIALIZED);
> +        aml_append(method, aml_name_decl("INPT", aml_buffer(8, NULL)));
> +
> +        aml_append(method, aml_create_dword_field(aml_name("INPT"),
> +                                                  aml_int(0), "OFST"));
> +        aml_append(method, aml_create_dword_field(aml_name("INPT"),
> +                                                  aml_int(4), "LEN"));
> +        aml_append(method, aml_store(aml_arg(0), aml_name("OFST")));
> +        aml_append(method, aml_store(aml_arg(1), aml_name("LEN")));
> +
> +        pkg = aml_package(1);
> +        aml_append(pkg, aml_name("INPT"));
> +        aml_append(method, aml_store(pkg, aml_local(0)));
> +
> +        com_call = aml_call5(NVDIMM_COMMON_DSM,
> +                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
> +                            aml_int(1), aml_int(5), aml_local(0),
> +                            aml_int(handle));
> +        aml_append(method, aml_store(com_call, aml_local(3)));
> +        field = aml_create_dword_field(aml_local(3), aml_int(0), "STTS");
> +        aml_append(method, field);
> +        field = aml_create_field(aml_local(3), aml_int(32),
> +                                 aml_shiftleft(aml_name("LEN"), aml_int(3)),
> +                                 "LDAT");
> +        aml_append(method, field);
> +        aml_append(method, aml_name_decl("LSA", aml_buffer(0, NULL)));
> +        aml_append(method, aml_to_buffer(aml_name("LDAT"), aml_name("LSA")));
> +
> +        pkg = aml_package(2);
> +        aml_append(pkg, aml_name("STTS"));
> +        aml_append(pkg, aml_name("LSA"));
> +
> +        aml_append(method, aml_store(pkg, aml_local(1)));
> +        aml_append(method, aml_return(aml_local(1)));
> +
> +        aml_append(nvdimm_dev, method);
> +
> +        /* _LSW */
> +        method = aml_method("_LSW", 3, AML_SERIALIZED);
> +        aml_append(method, aml_store(aml_arg(2), aml_local(2)));
> +        aml_append(method, aml_name_decl("INPT", aml_buffer(8, NULL)));
> +        field = aml_create_dword_field(aml_name("INPT"),
> +                                                  aml_int(0), "OFST");
> +        aml_append(method, field);
> +        field = aml_create_dword_field(aml_name("INPT"),
> +                                                  aml_int(4), "TLEN");
> +        aml_append(method, field);
> +        aml_append(method, aml_store(aml_arg(0), aml_name("OFST")));
> +        aml_append(method, aml_store(aml_arg(1), aml_name("TLEN")));
> +
> +        aml_append(method, aml_concatenate(aml_name("INPT"), aml_local(2),
> +                                            aml_name("INPT")));
> +        pkg = aml_package(1);
> +        aml_append(pkg, aml_name("INPT"));
> +        aml_append(method, aml_store(pkg, aml_local(0)));
> +        com_call = aml_call5(NVDIMM_COMMON_DSM,
> +                            aml_touuid(NVDIMM_DEVICE_DSM_UUID),
> +                            aml_int(1), aml_int(6), aml_local(0),
> +                            aml_int(handle));
> +        aml_append(method, aml_store(com_call, aml_local(3)));
> +        field = aml_create_dword_field(aml_local(3), aml_int(0), "STTS");
> +        aml_append(method, field);
> +        aml_append(method, aml_return(aml_name("STTS")));
> +
> +        aml_append(nvdimm_dev, method);
> +
>          nvdimm_build_device_dsm(nvdimm_dev, handle);
>          aml_append(root_dev, nvdimm_dev);
>      }



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-10-20  0:48           ` Robert Hoo
@ 2022-10-20 11:48             ` Igor Mammedov
  2022-10-20 12:01               ` Michael S. Tsirkin
  0 siblings, 1 reply; 17+ messages in thread
From: Igor Mammedov @ 2022-10-20 11:48 UTC (permalink / raw)
  To: Robert Hoo
  Cc: mst, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, 20 Oct 2022 08:48:36 +0800
Robert Hoo <robert.hu@linux.intel.com> wrote:

> Ping...

sorry, series got lost among the rest.
I've just acked 4/5, but this patch doesn't apply anymore with
 error: corrupt patch at line 172

> On Fri, 2022-10-07 at 21:27 +0800, Robert Hoo wrote:
> > Ping...
> > On Tue, 2022-09-27 at 08:30 +0800, Robert Hoo wrote:  
> > > On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:  
> > > > > > 0800200c9a66"), One, 0x05, Local0, One)
> > > > > > +                    CreateDWordField (Local3, Zero, STTS)
> > > > > > +                    CreateField (Local3, 0x20, (LEN <<
> > > > > > 0x03),
> > > > > > LDAT)
> > > > > > +                    Name (LSA, Buffer (Zero){})
> > > > > > +                    ToBuffer (LDAT, LSA) /*
> > > > > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > > > > +                    Local1 = Package (0x02)
> > > > > > +                        {
> > > > > > +                            STTS,
> > > > > > +                            LSA
> > > > > > +                        }    
> > > > > 
> > > > > Hi Igor,
> > > > > 
> > > > > Here is a little different from original proposal 
> > > > > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > > > > 
> > > > >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > > > > 
> > > > > Because in my test, Linux guest complains:
> > > > > 
> > > > > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within
> > > > > package
> > > > > elements are not supported (20220331/dspkginit-172)
> > > > > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR
> > > > > due
> > > > > to
> > > > > previous error (AE_SUPPORT) (20220331/psparse-531)
> > > > > 
> > > > > 
> > > > > So I have to move toBuffer() out of Package{} and name LSA to
> > > > > hold
> > > > > the
> > > > > buffer. If you have better idea, pls. let me know.  
> > > > 
> > > > Would something like following work?
> > > > 
> > > > LocalX =  Buffer (Zero){}
> > > > LocalY = Package (0x01) { LocalX }  
> > > 
> > > 
> > > No, Package{} doesn't accept LocalX as elements.
> > > 
> > > PackageTerm :=
> > > Package (
> > > NumElements // Nothing | ByteConstExpr | TermArg => Integer
> > > ) {PackageList} => Package
> > > 
> > > PackageList :=
> > > Nothing | <PackageElement PackageListTail>
> > > 
> > > PackageElement :=
> > > DataObject | NameString  
> 



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-10-20 11:48             ` Igor Mammedov
@ 2022-10-20 12:01               ` Michael S. Tsirkin
  2022-10-20 13:11                 ` Igor Mammedov
  0 siblings, 1 reply; 17+ messages in thread
From: Michael S. Tsirkin @ 2022-10-20 12:01 UTC (permalink / raw)
  To: Igor Mammedov
  Cc: Robert Hoo, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, Oct 20, 2022 at 01:48:49PM +0200, Igor Mammedov wrote:
> On Thu, 20 Oct 2022 08:48:36 +0800
> Robert Hoo <robert.hu@linux.intel.com> wrote:
> 
> > Ping...
> 
> sorry, series got lost among the rest.
> I've just acked 4/5, but this patch doesn't apply anymore with
>  error: corrupt patch at line 172


updating binaries can be done when applying, this is why
we have the process of splitting these patches out.

If the diff looks good to you - then just ack this, and I will
check it's the diff when applying.


> > On Fri, 2022-10-07 at 21:27 +0800, Robert Hoo wrote:
> > > Ping...
> > > On Tue, 2022-09-27 at 08:30 +0800, Robert Hoo wrote:  
> > > > On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:  
> > > > > > > 0800200c9a66"), One, 0x05, Local0, One)
> > > > > > > +                    CreateDWordField (Local3, Zero, STTS)
> > > > > > > +                    CreateField (Local3, 0x20, (LEN <<
> > > > > > > 0x03),
> > > > > > > LDAT)
> > > > > > > +                    Name (LSA, Buffer (Zero){})
> > > > > > > +                    ToBuffer (LDAT, LSA) /*
> > > > > > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > > > > > +                    Local1 = Package (0x02)
> > > > > > > +                        {
> > > > > > > +                            STTS,
> > > > > > > +                            LSA
> > > > > > > +                        }    
> > > > > > 
> > > > > > Hi Igor,
> > > > > > 
> > > > > > Here is a little different from original proposal 
> > > > > > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > > > > > 
> > > > > >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > > > > > 
> > > > > > Because in my test, Linux guest complains:
> > > > > > 
> > > > > > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within
> > > > > > package
> > > > > > elements are not supported (20220331/dspkginit-172)
> > > > > > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR
> > > > > > due
> > > > > > to
> > > > > > previous error (AE_SUPPORT) (20220331/psparse-531)
> > > > > > 
> > > > > > 
> > > > > > So I have to move toBuffer() out of Package{} and name LSA to
> > > > > > hold
> > > > > > the
> > > > > > buffer. If you have better idea, pls. let me know.  
> > > > > 
> > > > > Would something like following work?
> > > > > 
> > > > > LocalX =  Buffer (Zero){}
> > > > > LocalY = Package (0x01) { LocalX }  
> > > > 
> > > > 
> > > > No, Package{} doesn't accept LocalX as elements.
> > > > 
> > > > PackageTerm :=
> > > > Package (
> > > > NumElements // Nothing | ByteConstExpr | TermArg => Integer
> > > > ) {PackageList} => Package
> > > > 
> > > > PackageList :=
> > > > Nothing | <PackageElement PackageListTail>
> > > > 
> > > > PackageElement :=
> > > > DataObject | NameString  
> > 



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-10-20 12:01               ` Michael S. Tsirkin
@ 2022-10-20 13:11                 ` Igor Mammedov
  0 siblings, 0 replies; 17+ messages in thread
From: Igor Mammedov @ 2022-10-20 13:11 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Robert Hoo, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, 20 Oct 2022 08:01:48 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Thu, Oct 20, 2022 at 01:48:49PM +0200, Igor Mammedov wrote:
> > On Thu, 20 Oct 2022 08:48:36 +0800
> > Robert Hoo <robert.hu@linux.intel.com> wrote:
> >   
> > > Ping...  
> > 
> > sorry, series got lost among the rest.
> > I've just acked 4/5, but this patch doesn't apply anymore with
> >  error: corrupt patch at line 172  
> 
> 
> updating binaries can be done when applying, this is why
> we have the process of splitting these patches out.
> 
> If the diff looks good to you - then just ack this, and I will
> check it's the diff when applying.


Acked-by: Igor Mammedov <imammedo@redhat.com>

> 
> 
> > > On Fri, 2022-10-07 at 21:27 +0800, Robert Hoo wrote:  
> > > > Ping...
> > > > On Tue, 2022-09-27 at 08:30 +0800, Robert Hoo wrote:    
> > > > > On Mon, 2022-09-26 at 15:22 +0200, Igor Mammedov wrote:    
> > > > > > > > 0800200c9a66"), One, 0x05, Local0, One)
> > > > > > > > +                    CreateDWordField (Local3, Zero, STTS)
> > > > > > > > +                    CreateField (Local3, 0x20, (LEN <<
> > > > > > > > 0x03),
> > > > > > > > LDAT)
> > > > > > > > +                    Name (LSA, Buffer (Zero){})
> > > > > > > > +                    ToBuffer (LDAT, LSA) /*
> > > > > > > > \_SB_.NVDR.NV00._LSR.LSA_ */
> > > > > > > > +                    Local1 = Package (0x02)
> > > > > > > > +                        {
> > > > > > > > +                            STTS,
> > > > > > > > +                            LSA
> > > > > > > > +                        }      
> > > > > > > 
> > > > > > > Hi Igor,
> > > > > > > 
> > > > > > > Here is a little different from original proposal 
> > > > > > > https://lore.kernel.org/qemu-devel/80b09055416c790922c7c3db60d2ba865792d1b0.camel@linux.intel.com/
> > > > > > > 
> > > > > > >    Local1 = Package (0x2) {STTS, toBuffer(LDAT)}
> > > > > > > 
> > > > > > > Because in my test, Linux guest complains:
> > > > > > > 
> > > > > > > [    3.884656] ACPI Error: AE_SUPPORT, Expressions within
> > > > > > > package
> > > > > > > elements are not supported (20220331/dspkginit-172)
> > > > > > > [    3.887104] ACPI Error: Aborting method \_SB.NVDR.NV00._LSR
> > > > > > > due
> > > > > > > to
> > > > > > > previous error (AE_SUPPORT) (20220331/psparse-531)
> > > > > > > 
> > > > > > > 
> > > > > > > So I have to move toBuffer() out of Package{} and name LSA to
> > > > > > > hold
> > > > > > > the
> > > > > > > buffer. If you have better idea, pls. let me know.    
> > > > > > 
> > > > > > Would something like following work?
> > > > > > 
> > > > > > LocalX =  Buffer (Zero){}
> > > > > > LocalY = Package (0x01) { LocalX }    
> > > > > 
> > > > > 
> > > > > No, Package{} doesn't accept LocalX as elements.
> > > > > 
> > > > > PackageTerm :=
> > > > > Package (
> > > > > NumElements // Nothing | ByteConstExpr | TermArg => Integer
> > > > > ) {PackageList} => Package
> > > > > 
> > > > > PackageList :=
> > > > > Nothing | <PackageElement PackageListTail>
> > > > > 
> > > > > PackageElement :=
> > > > > DataObject | NameString    
> > >   
> 



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-09-22 12:21 ` [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries Robert Hoo
  2022-09-22 12:29   ` Robert Hoo
@ 2022-10-26 14:45   ` Michael S. Tsirkin
  2022-10-27  0:49     ` Robert Hoo
  1 sibling, 1 reply; 17+ messages in thread
From: Michael S. Tsirkin @ 2022-10-26 14:45 UTC (permalink / raw)
  To: Robert Hoo
  Cc: imammedo, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Thu, Sep 22, 2022 at 08:21:55PM +0800, Robert Hoo wrote:
> And empty bios-tables-test-allowed-diff.h.
> 
> Diff of ASL form, from qtest testlog.txt:
> 
> --- /tmp/asl-RFWZS1.dsl	2022-09-22 18:25:06.191519589 +0800
> +++ /tmp/asl-B1ZZS1.dsl	2022-09-22 18:25:06.187519182 +0800

Adding --- is what broke things here and why this does not apply.
You need to prefix each line e.g. with a space.


> @@ -1,30 +1,30 @@
>  /*
>   * Intel ACPI Component Architecture
>   * AML/ASL+ Disassembler version 20180629 (64-bit version)
>   * Copyright (c) 2000 - 2018 Intel Corporation
>   *
>   * Disassembling to symbolic ASL+ operators
>   *
> - * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Thu Sep 22 18:25:06 2022
> + * Disassembly of /tmp/aml-YYZZS1, Thu Sep 22 18:25:06 2022
>   *
>   * Original Table Header:
>   *     Signature        "SSDT"
> - *     Length           0x000002DE (734)
> + *     Length           0x00000717 (1815)
>   *     Revision         0x01
> - *     Checksum         0x56
> + *     Checksum         0xBC
>   *     OEM ID           "BOCHS "
>   *     OEM Table ID     "NVDIMM"
>   *     OEM Revision     0x00000001 (1)
>   *     Compiler ID      "BXPC"
>   *     Compiler Version 0x00000001 (1)
>   */
>  DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
>  {
>      Scope (\_SB)
>      {
>          Device (NVDR)
>          {
>              Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
>              Method (NCAL, 5, Serialized)
>              {
>                  Local6 = MEMA /* \MEMA */
> @@ -49,52 +49,52 @@
>                      ODAT,   32736
>                  }
> 
>                  If ((Arg4 == Zero))
>                  {
>                      Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba")
>                  }
>                  ElseIf ((Arg4 == 0x00010000))
>                  {
>                      Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62")
>                  }
>                  Else
>                  {
>                      Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66")
>                  }
> 
> -                If (((Local6 == Zero) | (Arg0 != Local0)))
> +                If (((Local6 == Zero) || (Arg0 != Local0)))
>                  {
>                      If ((Arg2 == Zero))
>                      {
>                          Return (Buffer (One)
>                          {
>                               0x00                                             // .
>                          })
>                      }
> 
>                      Return (Buffer (One)
>                      {
>                           0x01                                             // .
>                      })
>                  }
> 
>                  HDLE = Arg4
>                  REVS = Arg1
>                  FUNC = Arg2
> -                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One)))
> +                If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3) == One)))
>                  {
>                      Local2 = Arg3 [Zero]
>                      Local3 = DerefOf (Local2)
>                      FARG = Local3
>                  }
> 
>                  NTFI = Local6
>                  Local1 = (RLEN - 0x04)
>                  If ((Local1 < 0x08))
>                  {
>                      Local2 = Zero
>                      Name (TBUF, Buffer (One)
>                      {
>                           0x00                                             // .
>                      })
>                      Local7 = Buffer (Zero){}
> @@ -161,45 +161,234 @@
>                      Else
>                      {
>                          If ((Local1 == Zero))
>                          {
>                              Return (Local2)
>                          }
> 
>                          Local3 += Local1
>                          Concatenate (Local2, Local0, Local2)
>                      }
>                  }
>              }
> 
>              Device (NV00)
>              {
>                  Name (_ADR, One)  // _ADR: Address
> +                Method (_LSI, 0, Serialized)  // _LSI: Label Storage Information
> +                {
> +                    Local0 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x04, Zero, One)
> +                    CreateDWordField (Local0, Zero, STTS)
> +                    CreateDWordField (Local0, 0x04, SLSA)
> +                    CreateDWordField (Local0, 0x08, MAXT)
> +                    Local1 = Package (0x03)
> +                        {
> +                            STTS,
> +                            SLSA,
> +                            MAXT
> +                        }
> +                    Return (Local1)
> +                }
> +
> +                Method (_LSR, 2, Serialized)  // _LSR: Label Storage Read
> +                {
> +                    Name (INPT, Buffer (0x08)
> +                    {
> +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
> +                    })
> +                    CreateDWordField (INPT, Zero, OFST)
> +                    CreateDWordField (INPT, 0x04, LEN)
> +                    OFST = Arg0
> +                    LEN = Arg1
> +                    Local0 = Package (0x01)
> +                        {
> +                            INPT
> +                        }
> +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x05, Local0, One)
> +                    CreateDWordField (Local3, Zero, STTS)
> +                    CreateField (Local3, 0x20, (LEN << 0x03), LDAT)
> +                    Name (LSA, Buffer (Zero){})
> +                    ToBuffer (LDAT, LSA) /* \_SB_.NVDR.NV00._LSR.LSA_ */
> +                    Local1 = Package (0x02)
> +                        {
> +                            STTS,
> +                            LSA
> +                        }
> +                    Return (Local1)
> +                }
> +
> +                Method (_LSW, 3, Serialized)  // _LSW: Label Storage Write
> +                {
> +                    Local2 = Arg2
> +                    Name (INPT, Buffer (0x08)
> +                    {
> +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
> +                    })
> +                    CreateDWordField (INPT, Zero, OFST)
> +                    CreateDWordField (INPT, 0x04, TLEN)
> +                    OFST = Arg0
> +                    TLEN = Arg1
> +                    Concatenate (INPT, Local2, INPT) /* \_SB_.NVDR.NV00._LSW.INPT */
> +                    Local0 = Package (0x01)
> +                        {
> +                            INPT
> +                        }
> +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66"), One, 0x06, Local0, One)
> +                    CreateDWordField (Local3, Zero, STTS)
> +                    Return (STTS) /* \_SB_.NVDR.NV00._LSW.STTS */
> +                }
> +
> (iterates in each NV)
> 
> Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
> ---
>  tests/data/acpi/pc/SSDT.dimmpxm             | Bin 734 -> 1815 bytes
>  tests/data/acpi/q35/SSDT.dimmpxm            | Bin 734 -> 1815 bytes
>  tests/qtest/bios-tables-test-allowed-diff.h |   2 --
>  3 files changed, 2 deletions(-)
> 
> diff --git a/tests/data/acpi/pc/SSDT.dimmpxm b/tests/data/acpi/pc/SSDT.dimmpxm
> index ac55387d57e48adb99eb738a102308688a262fb8..70f133412f5e0aa128ab210245a8de7304eeb843 100644
> GIT binary patch
> literal 1815
> zcmdUwyKmD_6vnUPv~g}y6emHgc**|(X$OSF0FILox3Lr1ZmHx-examI3c8|YVC!RO
> z2@)c;%774ZDvwC)2sTzGCN_pj>?}wOz&%bMqC!xRK#<|wbI(0K`Q7hx6kRVFqX~qV
> z7sa|%)dh8?Br6KtBZP{x4GGpv_2!(V7cFzGeuJKCoK=-eBcjxh3x)9sl%G1ON@8t<
> zC}l-#nk#BUt~04IjN>%dL<KcdC}Xaspw6mBMHbA}GjPCGOSQ6~m1lIJGObENMbxgY
> zd`g(B+2~ZOl~ti$5{;G5iQtsKhzOs<nect)eDBFFfA>xHlK*k;x!u1QobwmcfE+b^
> zczo}A|8-XCzLj4+n|SHk{n4mic$$>>kzKym<B*Vk)U<=Kp5H`U{=6L|{Wc1DmWcvG
> z76FVb02yfmT5$S-f4_s{{ziu(n;nE)vhI4s17gyIJ1qk(jyu7HZ3lA%xtvj)uE0pb
> z$53nM?6&KW^-Z{ri#Fj5p`{kAt=n$cB6l3jBFD@@19IxL9zw`xtdg$8LlAg=q1{28
> zrW+#4D+#S48%eHS(G5iAVIj~13LO=IVY0&vbVM52T^rF6(*yzx3({MDR0%04*|42u
> z2kyc74pk$D%$$vdh>qe^LJ0ZG7X5M#F6I*C?GzXSG@cDl2fPncQ;69=?`MKx80Oyc
> z9B;|BU2{zuQ)dbV&Js%+lfN=#)pVIV;6G{<gX4%9U>kbZ#&Nx-i*)4_an>N&6Rd6+
> zI@DnAgic;g(t#T0WVK=NDa_GVIQn#<fIx{T!*ObvwI|*}lvAOg$NmA!kj;2qj|yh!
> zX3nG1z=PDg8a0li5EfPCA#5NgSsa5-$boD!LCLPANZb86oIwZg!$H0TWG)1949wv}
> z%n%5UzDSI@Rs|ErBNK2eFCN1M9Qzd;CjYDrIQIKKO#MY44mk%#@ZbKTacs|tiGdUB
> c@tk1)B`4Vb#EApW?>oVA@DG+o@4h6y0>WY85C8xG
> 
> delta 135
> zcmbQvcaN1TIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}s5Bn$um
> 
> diff --git a/tests/data/acpi/q35/SSDT.dimmpxm b/tests/data/acpi/q35/SSDT.dimmpxm
> index 98e6f0e3f3bb02dd419e36bdd1db9b94c728c406..9ea4e0d0ceaa8a5cbd706afb6d49de853fafe654 100644
> GIT binary patch
> literal 1815
> zcmdUw%WD%+6vppl(q?j#N+yZ4_+tJ8(=J4Cp_55srp-*k%rq9JFfU2kq{_wCg}Xi$
> ztr5g@s0$I9lvx(s3+~*ya^=3@R@?|K)O)5cETUCVG>dc3J@?GX?|$Ee=z7T*O(4YV
> z6zft|7u04+RusBN2o+}<60Di(?O97NTIOo~7CqNEt16d9M5!Sc3gZ(fKXqD_#M%f^
> z%8J-Bm(_+`XHsJr$7!yK3TmZL##~83omGvBESM|j;DD``YGpwyH+7*htx7^g)UGdo
> zN|-Cz=v1qfRiR!IjpfgY;Ecb32%p25@LlF&|Jg2o|4sIa|8e$(J-8fP@E6j695sA+
> z`rzi^byn)Vm0vxdc<I`M(WqY7NlN_4F5mBSNJu|v*}+)fZ=p?p&JL1(2ZcP#M1dg-
> z07mA4jC24kIQz(d*u`;wy~~h|E<!F@b3Nh#F=@e_mVg$=o#4`zgE@j+&L~b-U?kyV
> zsJ(rD%XP@w23*HQ8*qluVjI@>T{mo#dk$uiW9Fa%IdxhOA>=bwNmt?_2s}66=^{?k
> z4H4y)gjSJ_Bv-HK1|oB?5a<Dgjtjsr*<l7cB8}{xjp&GJ0s)2v=}kYXgcOvl+s={$
> z_uzbosu4qG&c;GSM{z14g#1;DemMsha|!ac3k(4o&xWT1-iN6v#2lOtGQltmbMJVL
> zx9HlgxhjpR%|d~*#FED3uMJr>UFHt?j~m6{IAZp&4ZUaMxL(smx^jv*W034ARyPbC
> zYOr@gCod=IKn-)U+A#PO=IARNeR@zpphT46IJL~$7jHhwsZh{k|A1x4X1tz91v7Lr
> z=TT|kLF!$N8plxxi>mS%HjtAnjzK5nKsK46WH(Zz<Nh4Zpo0(KAYTMB7Xmo}=I{|_
> z2n5GpB*t8=f(hf12{@J)Pv8QM{fZ5ff7S*Z`+Xm#{-O^@oO?#_-~OU;Y~P8AJtx?c
> bIl=x*PO$%p6NjANcY@{MA1saDe@T1=QL*6=
> 
> delta 135
> zcmbQvcaN1TIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}VOBm4jW
> 
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index eb8bae1407..dfb8523c8b 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1,3 +1 @@
>  /* List of comma-separated changed AML files to ignore */
> -"tests/data/acpi/pc/SSDT.dimmpxm",
> -"tests/data/acpi/q35/SSDT.dimmpxm",
> -- 
> 2.31.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries
  2022-10-26 14:45   ` Michael S. Tsirkin
@ 2022-10-27  0:49     ` Robert Hoo
  0 siblings, 0 replies; 17+ messages in thread
From: Robert Hoo @ 2022-10-27  0:49 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: imammedo, xiaoguangrong.eric, ani, jingqi.liu, qemu-devel, robert.hu

On Wed, 2022-10-26 at 10:45 -0400, Michael S. Tsirkin wrote:
> On Thu, Sep 22, 2022 at 08:21:55PM +0800, Robert Hoo wrote:
> > And empty bios-tables-test-allowed-diff.h.
> > 
> > Diff of ASL form, from qtest testlog.txt:
> > 
> > --- /tmp/asl-RFWZS1.dsl	2022-09-22 18:25:06.191519589 +0800
> > +++ /tmp/asl-B1ZZS1.dsl	2022-09-22 18:25:06.187519182 +0800
> 
> Adding --- is what broke things here and why this does not apply.
> You need to prefix each line e.g. with a space.
> 
OK, thanks Michael.
How about simply remove the 2 lines?
Do I need to resend a new version of this patch set?
> 
> > @@ -1,30 +1,30 @@
> >  /*
> >   * Intel ACPI Component Architecture
> >   * AML/ASL+ Disassembler version 20180629 (64-bit version)
> >   * Copyright (c) 2000 - 2018 Intel Corporation
> >   *
> >   * Disassembling to symbolic ASL+ operators
> >   *
> > - * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Thu Sep 22
> > 18:25:06 2022
> > + * Disassembly of /tmp/aml-YYZZS1, Thu Sep 22 18:25:06 2022
> >   *
> >   * Original Table Header:
> >   *     Signature        "SSDT"
> > - *     Length           0x000002DE (734)
> > + *     Length           0x00000717 (1815)
> >   *     Revision         0x01
> > - *     Checksum         0x56
> > + *     Checksum         0xBC
> >   *     OEM ID           "BOCHS "
> >   *     OEM Table ID     "NVDIMM"
> >   *     OEM Revision     0x00000001 (1)
> >   *     Compiler ID      "BXPC"
> >   *     Compiler Version 0x00000001 (1)
> >   */
> >  DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
> >  {
> >      Scope (\_SB)
> >      {
> >          Device (NVDR)
> >          {
> >              Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  //
> > _HID: Hardware ID
> >              Method (NCAL, 5, Serialized)
> >              {
> >                  Local6 = MEMA /* \MEMA */
> > @@ -49,52 +49,52 @@
> >                      ODAT,   32736
> >                  }
> > 
> >                  If ((Arg4 == Zero))
> >                  {
> >                      Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-
> > 123b93f75cba")
> >                  }
> >                  ElseIf ((Arg4 == 0x00010000))
> >                  {
> >                      Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-
> > 49c4af32bd62")
> >                  }
> >                  Else
> >                  {
> >                      Local0 = ToUUID ("4309ac30-0d11-11e4-9191-
> > 0800200c9a66")
> >                  }
> > 
> > -                If (((Local6 == Zero) | (Arg0 != Local0)))
> > +                If (((Local6 == Zero) || (Arg0 != Local0)))
> >                  {
> >                      If ((Arg2 == Zero))
> >                      {
> >                          Return (Buffer (One)
> >                          {
> >                               0x00                                 
> >             // .
> >                          })
> >                      }
> > 
> >                      Return (Buffer (One)
> >                      {
> >                           0x01                                     
> >         // .
> >                      })
> >                  }
> > 
> >                  HDLE = Arg4
> >                  REVS = Arg1
> >                  FUNC = Arg2
> > -                If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3)
> > == One)))
> > +                If (((ObjectType (Arg3) == 0x04) && (SizeOf (Arg3)
> > == One)))
> >                  {
> >                      Local2 = Arg3 [Zero]
> >                      Local3 = DerefOf (Local2)
> >                      FARG = Local3
> >                  }
> > 
> >                  NTFI = Local6
> >                  Local1 = (RLEN - 0x04)
> >                  If ((Local1 < 0x08))
> >                  {
> >                      Local2 = Zero
> >                      Name (TBUF, Buffer (One)
> >                      {
> >                           0x00                                     
> >         // .
> >                      })
> >                      Local7 = Buffer (Zero){}
> > @@ -161,45 +161,234 @@
> >                      Else
> >                      {
> >                          If ((Local1 == Zero))
> >                          {
> >                              Return (Local2)
> >                          }
> > 
> >                          Local3 += Local1
> >                          Concatenate (Local2, Local0, Local2)
> >                      }
> >                  }
> >              }
> > 
> >              Device (NV00)
> >              {
> >                  Name (_ADR, One)  // _ADR: Address
> > +                Method (_LSI, 0, Serialized)  // _LSI: Label
> > Storage Information
> > +                {
> > +                    Local0 = NCAL (ToUUID ("4309ac30-0d11-11e4-
> > 9191-0800200c9a66"), One, 0x04, Zero, One)
> > +                    CreateDWordField (Local0, Zero, STTS)
> > +                    CreateDWordField (Local0, 0x04, SLSA)
> > +                    CreateDWordField (Local0, 0x08, MAXT)
> > +                    Local1 = Package (0x03)
> > +                        {
> > +                            STTS,
> > +                            SLSA,
> > +                            MAXT
> > +                        }
> > +                    Return (Local1)
> > +                }
> > +
> > +                Method (_LSR, 2, Serialized)  // _LSR: Label
> > Storage Read
> > +                {
> > +                    Name (INPT, Buffer (0x08)
> > +                    {
> > +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> > 0x00   // ........
> > +                    })
> > +                    CreateDWordField (INPT, Zero, OFST)
> > +                    CreateDWordField (INPT, 0x04, LEN)
> > +                    OFST = Arg0
> > +                    LEN = Arg1
> > +                    Local0 = Package (0x01)
> > +                        {
> > +                            INPT
> > +                        }
> > +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-
> > 9191-0800200c9a66"), One, 0x05, Local0, One)
> > +                    CreateDWordField (Local3, Zero, STTS)
> > +                    CreateField (Local3, 0x20, (LEN << 0x03),
> > LDAT)
> > +                    Name (LSA, Buffer (Zero){})
> > +                    ToBuffer (LDAT, LSA) /*
> > \_SB_.NVDR.NV00._LSR.LSA_ */
> > +                    Local1 = Package (0x02)
> > +                        {
> > +                            STTS,
> > +                            LSA
> > +                        }
> > +                    Return (Local1)
> > +                }
> > +
> > +                Method (_LSW, 3, Serialized)  // _LSW: Label
> > Storage Write
> > +                {
> > +                    Local2 = Arg2
> > +                    Name (INPT, Buffer (0x08)
> > +                    {
> > +                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> > 0x00   // ........
> > +                    })
> > +                    CreateDWordField (INPT, Zero, OFST)
> > +                    CreateDWordField (INPT, 0x04, TLEN)
> > +                    OFST = Arg0
> > +                    TLEN = Arg1
> > +                    Concatenate (INPT, Local2, INPT) /*
> > \_SB_.NVDR.NV00._LSW.INPT */
> > +                    Local0 = Package (0x01)
> > +                        {
> > +                            INPT
> > +                        }
> > +                    Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-
> > 9191-0800200c9a66"), One, 0x06, Local0, One)
> > +                    CreateDWordField (Local3, Zero, STTS)
> > +                    Return (STTS) /* \_SB_.NVDR.NV00._LSW.STTS */
> > +                }
> > +
> > (iterates in each NV)
> > 
> > Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
> > ---
> >  tests/data/acpi/pc/SSDT.dimmpxm             | Bin 734 -> 1815
> > bytes
> >  tests/data/acpi/q35/SSDT.dimmpxm            | Bin 734 -> 1815
> > bytes
> >  tests/qtest/bios-tables-test-allowed-diff.h |   2 --
> >  3 files changed, 2 deletions(-)
> > 
> > diff --git a/tests/data/acpi/pc/SSDT.dimmpxm
> > b/tests/data/acpi/pc/SSDT.dimmpxm
> > index
> > ac55387d57e48adb99eb738a102308688a262fb8..70f133412f5e0aa128ab21024
> > 5a8de7304eeb843 100644
> > GIT binary patch
> > literal 1815
> > zcmdUwyKmD_6vnUPv~g}y6emHgc**|(X$OSF0FILox3Lr1ZmHx-examI3c8|YVC!RO
> > z2@)c;%774ZDvwC)2sTzGCN_pj>?}wOz&%bMqC!xRK#<|wbI(0K`Q7hx6kRVFqX~qV
> > z7sa|%)dh8?Br6KtBZP{x4GGpv_2!(V7cFzGeuJKCoK=-eBcjxh3x)9sl%G1ON@8t<
> > zC}l-#nk#BUt~04IjN>%dL<KcdC}Xaspw6mBMHbA}GjPCGOSQ6~m1lIJGObENMbxgY
> > zd`g(B+2~ZOl~ti$5{;G5iQtsKhzOs<nect)eDBFFfA>xHlK*k;x!u1QobwmcfE+b^
> > zczo}A|8-XCzLj4+n|SHk{n4mic$$>>kzKym<B*Vk)U<=Kp5H`U{=6L|{Wc1DmWcvG
> > z76FVb02yfmT5$S-f4_s{{ziu(n;nE)vhI4s17gyIJ1qk(jyu7HZ3lA%xtvj)uE0pb
> > z$53nM?6&KW^-Z{ri#Fj5p`{kAt=n$cB6l3jBFD@@19IxL9zw`xtdg$8LlAg=q1{28
> > zrW+#4D+#S48%eHS(G5iAVIj~13LO=IVY0&vbVM52T^rF6(*yzx3({MDR0%04*|42u
> > z2kyc74pk$D%$$vdh>qe^LJ0ZG7X5M#F6I*C?GzXSG@cDl2fPncQ;69=?`MKx80Oyc
> > z9B;|BU2{zuQ)dbV&Js%+lfN=#)pVIV;6G{<gX4%9U>kbZ#&Nx-i*)4_an>N&6Rd6+
> > zI@DnAgic;g(t#T0WVK=NDa_GVIQn#<fIx{T!*ObvwI|*}lvAOg$NmA!kj;2qj|yh!
> > zX3nG1z=PDg8a0li5EfPCA#5NgSsa5-$boD!LCLPANZb86oIwZg!$H0TWG)1949wv}
> > z%n%5UzDSI@Rs|ErBNK2eFCN1M9Qzd;CjYDrIQIKKO#MY44mk%#@ZbKTacs|tiGdUB
> > c@tk1)B`4Vb#EApW?>oVA@DG+o@4h6y0>WY85C8xG
> > 
> > delta 135
> > zcmbQvcaN1TIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> > zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> > dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}s5Bn$um
> > 
> > diff --git a/tests/data/acpi/q35/SSDT.dimmpxm
> > b/tests/data/acpi/q35/SSDT.dimmpxm
> > index
> > 98e6f0e3f3bb02dd419e36bdd1db9b94c728c406..9ea4e0d0ceaa8a5cbd706afb6
> > d49de853fafe654 100644
> > GIT binary patch
> > literal 1815
> > zcmdUw%WD%+6vppl(q?j#N+yZ4_+tJ8(=J4Cp_55srp-*k%rq9JFfU2kq{_wCg}Xi$
> > ztr5g@s0$I9lvx(s3+~*ya^=3@R@?|K)O)5cETUCVG>dc3J@?GX?|$Ee=z7T*O(4YV
> > z6zft|7u04+RusBN2o+}<60Di(?O97NTIOo~7CqNEt16d9M5!Sc3gZ(fKXqD_#M%f^
> > z%8J-Bm(_+`XHsJr$7!yK3TmZL##~83omGvBESM|j;DD``YGpwyH+7*htx7^g)UGdo
> > zN|-Cz=v1qfRiR!IjpfgY;Ecb32%p25@LlF&|Jg2o|4sIa|8e$(J-8fP@E6j695sA+
> > z`rzi^byn)Vm0vxdc<I`M(WqY7NlN_4F5mBSNJu|v*}+)fZ=p?p&JL1(2ZcP#M1dg-
> > z07mA4jC24kIQz(d*u`;wy~~h|E<!F@b3Nh#F=@e_mVg$=o#4`zgE@j+&L~b-U?kyV
> > zsJ(rD%XP@w23*HQ8*qluVjI@>T{mo#dk$uiW9Fa%IdxhOA>=bwNmt?_2s}66=^{?k
> > z4H4y)gjSJ_Bv-HK1|oB?5a<Dgjtjsr*<l7cB8}{xjp&GJ0s)2v=}kYXgcOvl+s={$
> > z_uzbosu4qG&c;GSM{z14g#1;DemMsha|!ac3k(4o&xWT1-iN6v#2lOtGQltmbMJVL
> > zx9HlgxhjpR%|d~*#FED3uMJr>UFHt?j~m6{IAZp&4ZUaMxL(smx^jv*W034ARyPbC
> > zYOr@gCod=IKn-)U+A#PO=IARNeR@zpphT46IJL~$7jHhwsZh{k|A1x4X1tz91v7Lr
> > z=TT|kLF!$N8plxxi>mS%HjtAnjzK5nKsK46WH(Zz<Nh4Zpo0(KAYTMB7Xmo}=I{|_
> > z2n5GpB*t8=f(hf12{@J)Pv8QM{fZ5ff7S*Z`+Xm#{-O^@oO?#_-~OU;Y~P8AJtx?c
> > bIl=x*PO$%p6NjANcY@{MA1saDe@T1=QL*6=
> > 
> > delta 135
> > zcmbQvcaN1TIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAjJ^|Hw{uC>PEKQ(G&v)I
> > zVKOVD5|2#v<i2b!mdWkej0~HN7+n~(Wc<Pm3^?K)U4j@z1mazSeOZ?HIXn7fWM*YE
> > dMmNa;WevfyTuhS-Sw(n20!9!4=E=X=WB}VOBm4jW
> > 
> > diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
> > b/tests/qtest/bios-tables-test-allowed-diff.h
> > index eb8bae1407..dfb8523c8b 100644
> > --- a/tests/qtest/bios-tables-test-allowed-diff.h
> > +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> > @@ -1,3 +1 @@
> >  /* List of comma-separated changed AML files to ignore */
> > -"tests/data/acpi/pc/SSDT.dimmpxm",
> > -"tests/data/acpi/q35/SSDT.dimmpxm",
> > -- 
> > 2.31.1
> 
> 



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-10-27  0:52 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-22 12:21 [PATCH v4 0/5] Support ACPI NVDIMM Label Methods Robert Hoo
2022-09-22 12:21 ` [PATCH v4 1/5] tests/acpi: allow SSDT changes Robert Hoo
2022-09-22 12:21 ` [PATCH v4 2/5] acpi/ssdt: Fix aml_or() and aml_and() in if clause Robert Hoo
2022-09-22 12:21 ` [PATCH v4 3/5] acpi/nvdimm: define macro for NVDIMM Device _DSM Robert Hoo
2022-09-22 12:21 ` [PATCH v4 4/5] acpi/nvdimm: Implement ACPI NVDIMM Label Methods Robert Hoo
2022-10-20 11:45   ` Igor Mammedov
2022-09-22 12:21 ` [PATCH v4 5/5] test/acpi/bios-tables-test: SSDT: update golden master binaries Robert Hoo
2022-09-22 12:29   ` Robert Hoo
2022-09-26 13:22     ` Igor Mammedov
2022-09-27  0:30       ` Robert Hoo
2022-10-07 13:27         ` Robert Hoo
2022-10-20  0:48           ` Robert Hoo
2022-10-20 11:48             ` Igor Mammedov
2022-10-20 12:01               ` Michael S. Tsirkin
2022-10-20 13:11                 ` Igor Mammedov
2022-10-26 14:45   ` Michael S. Tsirkin
2022-10-27  0:49     ` Robert Hoo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).