lkml.org 
[lkml]   [2010]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] acpi: x2apic entry with uid < 255 could use processor statement
On 08/02/2010 01:53 PM, Suresh Siddha wrote:
> On Mon, 2010-08-02 at 13:18 -0700, Yinghai Lu wrote:
>> On Mon, Aug 2, 2010 at 12:06 PM, Suresh Siddha
>> <suresh.b.siddha@intel.com> wrote:
>>> On Sat, 2010-07-31 at 07:51 +0100, Yinghai Lu wrote:
>>>> According to Intel x2apic spec page 46
>>>>
>>>> " The hand-off to
>>>> OSPM will have processor IDs in the range of 0 to 254 for xAPIC/x2APIC and 0 to 255
>>>> for SAPIC declared as either Processor() or Device() objects, but not both. Processor
>>>> IDs outside these ranges must be declared as Device() objects."
>>>>
>>>> So only check if Device is used when acpi_id >=255.
>>>>
>>>> that will help system with less 255 cpus, but some cpus apic id > 255,
>>>> still can use Processor statement instead of Device() objects.
>>>
>>> But the entries with apic_id < 255 are supposed to use local APIC
>>> structure and not local x2apic structure. So entries with apic id < 255
>>> must be processed using map_lapic_id() which doesn't have any
>>> device_declaration checks.
>>>
>>> Only for apic ids > 255, we use map_x2apic_id() which needs device
>>> declaration. So this patch is not needed. or Am I missing something?
>>
>> it is acpi_id aka Processor id.
>>
>> the system has less than 255 cpus, but some cpus apic_id > 255.
>> BIOS have apic entries for apic_id < 255, and some x2apic entries for
>> apic_id > 255.
>>
>> but BIOS still use Processor statement for all cpus.
>
> Ok. I think there might be some confusion or mis-interpretation of the
> words here. You referred to x2apic spec page 46, perhaps this is an
> older version. Newer x2apic version leaves all the ACPI definitions to
> the ACPI 4.0 spec.
>
> And here is what ACPI 4.0 spec says:
>
> In Table5-33 for processor local x2apic structure:
>
> ACPI Processor UID
> 4
> 12
> OSPM associates the X2APIC Structure with a processor object declared in
> the namespace using the Device statement, when the _UID child object of
> the processor device evaluates to a numeric value, by matching the
> numeric value with this field
>
> And in page 312:
>
> <snip>
> The platform may declare processors with IDs in the range of 0-254 for
> APIC/x2APIC implementations and 0-255 for SAPIC implementations using
> either the ASL Processor statement or the ASL Device statement but not
> both. Processors with IDs outside these ranges must be declared using
> the ASL Device statement.
> </snip>
>
> And in the above paragraph "processors with IDs" are APIC id's and not
> ACPI Id's.
>
> So I think your bios need to implement ACPI device objects for the
> x2apic entries.

that is confusing.

thanks. I will ask BIOS to fix that.

Yinghai


\
 
 \ /
  Last update: 2010-08-02 23:39    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog