qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: seabios: acpi: add _RMV control method for PCI devices


From: Marcelo Tosatti
Subject: [Qemu-devel] Re: seabios: acpi: add _RMV control method for PCI devices
Date: Wed, 8 Dec 2010 19:23:41 -0200
User-agent: Mutt/1.5.20 (2009-08-17)

On Wed, Dec 08, 2010 at 09:58:35PM +0200, Gleb Natapov wrote:
> On Wed, Dec 08, 2010 at 04:01:18PM -0200, Marcelo Tosatti wrote:
> > On Wed, Dec 08, 2010 at 07:34:42PM +0200, Gleb Natapov wrote:
> > > On Wed, Dec 08, 2010 at 03:08:59PM -0200, Marcelo Tosatti wrote:
> > > > Use _RMV method to indicate whether device can be removed.
> > > > 
> > > But Windows still shows device as removable in the gui and allows to
> > > remove it, correct?
> > 
> > No. From "Designing Hardware for Surprise Removal under Windows XP"
> > document:
> > 
> > "An ACPI BIOS can override the Removable capability by using the _RMV
> > method ..."
> > 
> Cool. I wonder how it co-exists with _EJ0 method for the same device.

The Linux driver, at least, will use the _EJ0 method of the first device
object. I guess Windows does the same.

> > > > +#define gen_pci_device(name, nr)                                \
> > > > +        Device(SL##name) {                                      \
> > > > +            Name (_ADR, nr##0000)                               \
> > > > +            Method (_RMV) {                                     \
> > > > +                If (And(\_SB.PCI0.PCRM, ShiftLeft(1, nr))) {    \
> > > > +                    Return (0x1)                                \
> > > > +                }                                               \
> > > > +                Return (0x0)                                    \
> > > > +            }                                                   \
> > > > +            Name (_SUN, name)                                   \
> > > > +        }
> > > Why not add this to hotplug_slot() macro?
> > 
> > Because its ignored if declared in the device object thats a child
> > of SB.PCI0 (hotplug_slot). 
> Any idea why?
> 
> --
>                       Gleb.

Because _EJ0 overrides _RMV when deciding removability, inside a
device object (just checked). So the above "if declared in a child of
SB.PCI0..." is wrong.




reply via email to

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