On Wed, 2022-09-21 at 15:29 +0200, Igor Mammedov wrote: > On Tue, 20 Sep 2022 20:28:31 +0800 > Robert Hoo <robert...@linux.intel.com> wrote: > > > On Tue, 2022-09-20 at 11:13 +0200, Igor Mammedov wrote: > > > On Fri, 16 Sep 2022 21:15:35 +0800 > > > Robert Hoo <robert...@linux.intel.com> wrote: > > > > > > > On Fri, 2022-09-16 at 09:37 +0200, Igor Mammedov wrote: > > > > > > > > > > Fine, get your point now. > > > > > > In ASL it will look like this: > > > > > > Local1 = Package (0x3) {STTS, SLSA, > > > > > > MAXT} > > > > > > Return (Local1) > > > > > > > > > > > > > > > > > > > > > > But as for > > > > > > CreateDWordField (Local0, Zero, > > > > > > STTS) // > > > > > > Status > > > > > > CreateDWordField (Local0, 0x04, > > > > > > SLSA) // > > > > > > SizeofLSA > > > > > > CreateDWordField (Local0, 0x08, > > > > > > MAXT) // > > > > > > Max > > > > > > Trans > > > > > > > > > > > > I cannot figure out how to substitute with LocalX. Can you > > > > > > shed > > > > > > more > > > > > > light? > > > > > > > > > > Leave this as is, there is no way to make it anonymous/local > > > > > with > > > > > FooField. > > > > > > > > > > (well one might try to use Index and copy field's bytes into > > > > > a > > > > > buffer > > > > > and > > > > > then explicitly convert to Integer, but that's a rather > > > > > convoluted > > > > > way > > > > > around limitation so I'd not go this route) > > > > > > > > > > > > > OK, pls. take a look, how about this? > > > > > > > > Method (_LSI, 0, Serialized) // _LSI: Label Storage > > > > Information > > > > { > > > > Local0 = NCAL (ToUUID("4309ac30-0d11-11e4-9191- > > > > 0800200c9a66"), > > > > 0x02, 0x04, Zero, One) // Buffer > > > > CreateDWordField (Local0, Zero, STTS) // Status > > > > CreateDWordField (Local0, 0x04, SLSA) // Size of LSA > > > > CreateDWordField (Local0, 0x08, MAXT) // Max Transfer Size > > > > Local1 = Package (0x3) {STTS, SLSA, MAXT} > > > > Return (Local1) > > > > } > > > > > > > > Method (_LSR, 2, Serialized) // _LSR: Label Storage Read > > > > { > > > > Name (INPT, Buffer(8) {}) > > > > CreateDWordField (INPT, Zero, OFST); > > > > CreateDWordField (INPT, 4, LEN); > > > > > > why do you have to create and use INPT, wouldn't local be enough > > > to > > > keep the buffer? > > > > If substitute INPT with LocalX, then later > > Local0 = Package (0x01) {LocalX} isn't accepted. > > > > PackageElement := > > DataObject | NameString > > ok, then respin series and lets get it some testing.
Sure. I'd also like it to go through your tests, though I had done some ordinary tests like guest create/delete/init-labels on vNVDIMM. > > BTW: > it looks like Windows Server starting from v2019 has support for > NVDIMM-P devices which came with 'Optane DC Persistent Memory > Modules' > but it fails to recognize NVDIMMs in QEMU (complaining something > about > wrong target). Perhaps you can reach someone with Optane/ACPI > expertise within your org and try to fix QEMU side. Yes, it's a known gap there. I will try that once I had some time and resource. > > > > > > > > OFST = Arg0 > > > > LEN = Arg1 > > > > Local0 = Package (0x01) {INPT} > > > > Local3 = NCAL (ToUUID("4309ac30-0d11-11e4-9191- > > > > 0800200c9a66"), > > > > 0x02, 0x05, Local0, One) > > > > CreateDWordField (Local3, Zero, STTS) > > > > CreateField (Local3, 32, LEN << 3, LDAT) > > > > Local1 = Package (0x2) {STTS, toBuffer(LDAT)} > > > > Return (Local1) > > > > } > > > > > > > > Method (_LSW, 3, Serialized) // _LSW: Label Storage Write > > > > { > > > > Local2 = Arg2 > > > > Name (INPT, Buffer(8) {}) > > > > > > ditto > > > > > > > CreateDWordField (INPT, Zero, OFST); > > > > CreateDWordField (INPT, 4, TLEN); > > > > OFST = Arg0 > > > > TLEN = Arg1 > > > > Concatenate(INPT, Local2, INPT) > > > > Local0 = Package (0x01) > > > > { > > > > INPT > > > > } > > > > Local3 = NCAL (ToUUID ("4309ac30-0d11-11e4-9191- > > > > 0800200c9a66"), > > > > 0x02, 0x06, Local0, One) > > > > CreateDWordField (Local3, 0, STTS) > > > > Return (STTS) > > > > } > > > > > >