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?
> Data is retrieved from QEMU via I/O port 0xae0c. > > Signed-off-by: Marcelo Tosatti <mtosa...@redhat.com> > > Index: seabios/src/acpi-dsdt.dsl > =================================================================== > --- seabios.orig/src/acpi-dsdt.dsl > +++ seabios/src/acpi-dsdt.dsl > @@ -122,6 +122,12 @@ DefinitionBlock ( > B0EJ, 32, > } > > + OperationRegion(RMVC, SystemIO, 0xae0c, 0x04) > + Field(RMVC, DWordAcc, NoLock, WriteAsZeros) > + { > + PCRM, 32, > + } > + > #define hotplug_slot(name, nr) \ > Device (S##name) { \ > Name (_ADR, nr##0000) \ > @@ -245,11 +251,14 @@ DefinitionBlock ( > { > Return (0x00) > } > + Method(_RMV) { Return (0x00) } > } > > /* PIIX3 ISA bridge */ > Device (ISA) { > Name (_ADR, 0x00010000) > + Method(_RMV) { Return (0x00) } > + > > /* PIIX PCI to ISA irq remapping */ > OperationRegion (P40C, PCI_Config, 0x60, 0x04) > @@ -442,6 +451,49 @@ DefinitionBlock ( > DRSJ, 32 > } > } > + > +#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? > + > + /* VGA (slot 1) and ISA bus (slot 2) defined above */ > + gen_pci_device(3, 0x0003) > + gen_pci_device(4, 0x0004) > + gen_pci_device(5, 0x0005) > + gen_pci_device(6, 0x0006) > + gen_pci_device(7, 0x0007) > + gen_pci_device(8, 0x0008) > + gen_pci_device(9, 0x0009) > + gen_pci_device(10, 0x000a) > + gen_pci_device(11, 0x000b) > + gen_pci_device(12, 0x000c) > + gen_pci_device(13, 0x000d) > + gen_pci_device(14, 0x000e) > + gen_pci_device(15, 0x000f) > + gen_pci_device(16, 0x0010) > + gen_pci_device(17, 0x0011) > + gen_pci_device(18, 0x0012) > + gen_pci_device(19, 0x0013) > + gen_pci_device(20, 0x0014) > + gen_pci_device(21, 0x0015) > + gen_pci_device(22, 0x0016) > + gen_pci_device(23, 0x0017) > + gen_pci_device(24, 0x0018) > + gen_pci_device(25, 0x0019) > + gen_pci_device(26, 0x001a) > + gen_pci_device(27, 0x001b) > + gen_pci_device(28, 0x001c) > + gen_pci_device(29, 0x001d) > + gen_pci_device(30, 0x001e) > + gen_pci_device(31, 0x001f) > } > > /* PCI IRQs */ -- Gleb.