qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 5/6] acpi: Add IPMI table entries


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH v5 5/6] acpi: Add IPMI table entries
Date: Mon, 23 May 2016 15:15:00 +0200

On Mon, 23 May 2016 07:42:32 -0500
Corey Minyard <address@hidden> wrote:

> On 05/23/2016 05:01 AM, Igor Mammedov wrote:
> > On Sat, 21 May 2016 19:28:59 -0500
> > Corey Minyard <address@hidden> wrote:
> >  
> >> Thanks for all the comments.  I didn't know about stubs, as
> >> there's nothing that currently uses it in hw directory, but
> >> it's easy enough to add.  I did have two comment below:
> >>
> >> On 05/20/2016 04:53 AM, Igor Mammedov wrote:  
> >>> On Thu, 19 May 2016 10:24:01 -0500
> >>> address@hidden wrote:  
> >> .
> >> .
> >> .  
> >>> +    aml_append(dev, aml_name_decl("_STR", aml_string("ipmi_%s",
> >>> +                                                     
> >>> info->interface_name)));
> >>> +    aml_append(dev, aml_name_decl("_UID", aml_int(info->uuid)));
> >>> +    aml_append(dev, aml_name_decl("_CRS", aml_ipmi_crs(info, resource)));
> >>> +
> >>> +    /*
> >>> +     * The spec seems to require these to be methods.  All the examples
> >>> +     * show them this way and it doesn't seem to work if they are not.
> >>> +     */
> >>> +    method = aml_method("_IFT", 0, AML_NOTSERIALIZED);
> >>> +    aml_append(method, aml_return(aml_int(info->interface_type)));
> >>> +    aml_append(dev, method);
> >>> +    method = aml_method("_SRV", 0, AML_NOTSERIALIZED);
> >>> +    aml_append(method, aml_return(aml_int(version)));
> >>> +    aml_append(dev, method);
> >>> replace these methods with aml_name_decl() as they do not contain any 
> >>> logic
> >>> except of returning static value.  
> >> I'm not sure why, but what you ask doesn't work.  These have to be
> >> methods, and that is show by the IPMI spec, as the comment above
> >> these says.  
> > on linux these methods are evaluated by ACPICA core and named constant
> > is equivalent to a method without arguments that returns constant value.
> >
> > It might be worth to investigate why it doesn't work.  
> 
> I just tried this again and it did work.  I'm not sure why it didn't work
> before, if it was a change in Linux or my error.
> 
> However, the latest IPMI spec has the following text:
> 
> Note: _IFT and _SRV, following, have been reserved in ACPI 3.0 as names for
> control methods defined for SPMI
> 
> Just because it works in Linux doesn't mean it will work on other OSes.
> Wouldn't it be safer to use a method here?
I think it should be safe to use named constant instead of method.
Spec often uses terms method/object interchangeably for argument-less
methods and we use it to a make simpler/smaller AML bytecode.
So far there weren't any issues caused by it either on linux/windows guests.

PS:
ACPI6.0 spec uses named object instead of method for _IFT as an example.


> -corey
> 
> >> -corey  
> 




reply via email to

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