WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] RE: _OSI(Linux) == false

On Fri, 2007-08-17 at 14:13 +0800, Xu, Anthony wrote:
> >
> >   This changeset was just brought to my attention:
> >
> >http://www.kernel.org/hg/linux-2.6/rev/7f6bc8a8fb19
> >
> >In short, newer upstream kernels will return True for _OSI(Windows) and
> >False for _OSI(Linux).  This will cause Linux VT-i domains to get
> >incorrectly identified as Windows guests and do bad things with region
> 4
> >& 5 mapping.
> 
> Does linux call _OSI(Windows)?
> If not, it will not impact XEN.

   We added platform optimizations based on the following assumption:

        On Tue, 2007-05-08 at 10:55 +0800, Xu, Anthony wrote:
>         Run linux,
>         Both __OSI(linux) and __OSI(windows) return true.
>         
>         Run windows,
>         __OSI(linux) return false,
>         __OSI(windows) return true.
>         
>         So if guest FW checks linux first then checks windows.
>         Guest FW can tell which OS is running on top of it.
>         Then Guest FW can tell XEN which OS is running.

We can no longer identify Linux vs Windows in this manner unless we can
make Linux return True for _OSI(linux) when it's running on Xen.  Is
this not the way the code works?  I see the calls to _OSI in the _INI
method of the PCI0 device in the DSDT:


147             If (CondRefOf(_OSI, Local0)) 
148             { 
149                     //Compare linux first. Because \_OSI("Windows 2001") 
still 
150                     //return true while linux running on guest 
151                     If (\_OSI("Linux")) 
152                     { 
153                             Store(0xB2, OST) 
154                     } 
155                     ElseIf (\_OSI("Windows 2001.1")) 
156                     { 
157                             Store(0xB1, OST) 
158                     } 
159                     Else 
160                     { 
161                             Store(0xB0, OST) 
162                     } 
163
164                     Store(0xB0, OST) 
165             } 

Thanks,

        Alex

-- 
Alex Williamson                             HP Open Source & Linux Org.


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel