qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] nfit issue


From: Schmauss, Erik
Subject: Re: [Qemu-devel] nfit issue
Date: Mon, 16 Apr 2018 22:41:10 +0000

+ linux acpi
+qemu-devel

> -----Original Message-----
> From: Dan Williams [mailto:address@hidden
> Sent: Monday, April 16, 2018 10:23 AM
> To: Schmauss, Erik <address@hidden>
> Cc: Zhang, Haozhong <address@hidden>; Moore, Robert
> <address@hidden>; He, Junyan <address@hidden>
> Subject: Re: nfit issue
> 
> Let's move this discussion on to the mailing list and copy linux-
> address@hidden and address@hidden
> 
> On Mon, Apr 16, 2018 at 10:16 AM, Schmauss, Erik <address@hidden>
> wrote:
> > Hi,
> >
> > I took a look at the SSDT and I have a few comments.
> >
> > Compiler ID is BXPC so these ACPI tables were compiled using something other
> than iASL. This ends up generating some strange ACPI tables that are allowed. 
> I
> have trouble editing and re-compiling these tables using iASL. If possible,  
> please
> use iASL to build the tables. Also, if you have any trouble using iASL, 
> please let us
> know.
> >

Hi,

> > The issue with these ACPI tables seem to be that there is a forward 
> > reference
> to MEMA that the new patches cannot handle. MEMA is declared and defined at
> the very end of the ACPI table and MEMA is used to define the NRAM operation
> region which is earlier in the table. If you move MEMA to the top of the 
> table,
> this ends up working fine. However, this should be fixed in ACPICA code as it 
> is a
> regression.

I've done a lot of windows testing today and ASL code like the following is not 
good on windows:

OperationRegion (NRAM, SystemMemory, OBJ1, 0x1000) // OBJ1 not found here
Field (NRAM,.....)
{
  ...
}

Name (OBJ1, 0x1234) // OBJ1 declared here

Windows cannot handle this forward reference so OBJ1 is not found.
From what I can tell, operation region NRAM is not created as a result.
We used to support this code but the new patches close support for this. If 
windows AML interpreter does not
Support this, I don't think we should be supporting it either.

I think we can call this a firmware bug and have the qemu developers fix this.
In order to fix the above code, we need to declare OBJ1 before declaring 
OperationRegion(NRAM,....)

So it would look like this: 

Name (OBJ1, 0x1234) // OBJ1 declared here
OperationRegion (NRAM, SystemMemory, OBJ1, 0x1000) // OBJ1 found in above line
Field (NRAM,.....)
{
  ...
}

Erik

> >
> > Erik
> >
> >> -----Original Message-----
> >> From: Zhang, Haozhong
> >> Sent: Sunday, April 15, 2018 5:40 PM
> >> To: Moore, Robert <address@hidden>
> >> Cc: Williams, Dan J <address@hidden>; Schmauss, Erik
> >> <address@hidden>; He, Junyan <address@hidden>
> >> Subject: Re: nfit issue
> >>
> >> +Junyan, who is taking over my work on CR on KVM and QEMU
> >>
> >> On 04/14/18 08:30 +0800, Moore, Robert wrote:
> >> > MEMA is the missing symbol. It exists nowhere in either the DSDT or
> >> > SSDT
> >> >
> >> > -----Original Message-----
> >> > From: Dan Williams [mailto:address@hidden
> >> > Sent: Friday, April 13, 2018 5:10 PM
> >> > To: Moore, Robert <address@hidden>
> >> > Cc: Schmauss, Erik <address@hidden>; Zhang, Haozhong
> >> > <address@hidden>
> >> > Subject: Re: nfit issue
> >> >
> >> > [ adding Haozhong ]
> >> >
> >> > This is just my virtual machine, I've never tried to boot Windows on it.
> >> >
> >> > That said this should also be a bug report to the qemu-kvm folks to
> >> > fix up their
> >> ACPI implementation.
> >> >
> >> > Haozhong, can you take a look at these errors reported by the
> >> > latest Linux
> >> master branch when parsing the NFIT tables:
> >> >
> >> > ACPI BIOS Error (bug): Failure looking up [\_SB.NVDR.MEMA],
> >> AE_NOT_FOUND (20180313/psargs-330)
> >> >    ACPI Error: Method parse/execution failed \, AE_NOT_FOUND
> >> > (20180313/psparse-516)
> >> >    ACPI Error: Invalid zero thread count in method (20180313/dsmethod-
> 760)
> >> >    ACPI Error: Invalid OwnerId: 0x00 (20180313/utownerid-156)
> >> >    ACPI Error: AE_NOT_FOUND, (SSDT:  NVDIMM) while loading table
> >> > (20180313/tbxfload-197)
> >> >    ACPI Error: 1 table load failures, 1 successful
> >> > (20180313/tbxfload-215)
> >> >
> >> >
> >> > Bob expects these might also cause compat problems for Windows.
> >> >
> >> > On Fri, Apr 13, 2018 at 4:44 PM, Moore, Robert
> >> > <address@hidden>
> >> wrote:
> >> > > Dan,
> >> > >
> >> > >
> >> > >
> >> > > We are starting to get a handle on this, at least a bit
> >> > >
> >> > >
> >> > >
> >> > > I have a couple questions:
> >> > >
> >> > >
> >> > >
> >> > > 1)      What kind of machine is this?
> >> > >
> >> > > 2)      Does it run windows correctly?
> >> > >
> >> > > 3)      Has it ever run windows?
> >> > >
> >> > >
> >> > >
> >> > > There is at least one bug in the DSDT/SSDT that can cause major
> >> > > problems, in the _DSM/NFIT area. The AE_NOT_FOUND error you have
> >> > > seen is in fact correct, and represents the table bug. There is
> >> > > an unresolved
> >> symbol.
> >> > >
> >> > >
> >> > >
> >> > > That’s about as far as I have gotten.
> >> > >
> >> > > Bob
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >

reply via email to

[Prev in Thread] Current Thread [Next in Thread]