1. 10 3月, 2014 1 次提交
    • M
      acpi-build: append description for non-hotplug · 8dcf525a
      Michael S. Tsirkin 提交于
      As reported in
      http://article.gmane.org/gmane.comp.emulators.qemu/253987
      Mac OSX actually requires describing all occupied slots
      in ACPI - even if hotplug isn't enabled.
      
      I didn't expect this so I dropped description of all
      non hotpluggable slots from ACPI.
      As a result: before
      commit 99fd437d (enable
      hotplug for pci bridges), PCI cards show up in the "device tree" of OS X
      (System Information). E.g., on MountainLion users have:
      
      Hardware -> PCI Cards:
      
        Card          Type                 Driver Installed  Slot
       *ethernet      Ethernet Controller  Yes               PCI Slot 2
        pci8086,2934  USB UHC              Yes               PCI Slot 29
      
        ethernet:
          Type:                 Ethernet Controller
          Driver Installed:     Yes
          MSI:                  No
          Bus:                  PCI
          Slot                  PCI Slot 2
          Vendor ID:            0x8086
          Device ID:            0x100e
          Subsystem Vendor ID:  0x1af4
          Subsystem ID:         0x1100
          Revision ID:          0x0003
      
      Hardware -> Ethernet Cards
      
        ethernet:
          Type:                 Ethernet Controller
          Bus:                  PCI
          Slot                  PCI Slot 2
          Vendor ID:            0x8086
          Device ID:            0x100e
          Subsystem Vendor ID:  0x1af4
          Subsystem ID:         0x1100
          Revision ID:          0x0003
          BSD name:             en0
          Kext name:            AppleIntel8254XEthernet.kext
          Location:             /System/Library/Extensions/...
          Version:              3.1.1b1
      
      After commit 99fd437d, users get:
      
      Hardware -> PCI Cards:
      
        This computer doesn't contain any PCI cards. If you installed PCI
        cards, make sure they're properly installed.
      
      Hardware -> Ethernet Cards
      
        ethernet:
          Type:                 Ethernet Controller
          Bus:                  PCI
          Vendor ID:            0x8086
          Device ID:            0x100e
          Subsystem Vendor ID:  0x1af4
          Subsystem ID:         0x1100
          Revision ID:          0x0003
          BSD name:             en0
          Kext name:            AppleIntel8254XEthernet.kext
          Location:             /System/Library/Extensions/...
          Version:              3.1.1b1
      
      Ethernet still works, but it's not showing up on the PCI bus, and it
      no longer thinks it's plugged in to slot #2, as it used to before the
      change.
      
      To fix, append description for all occupied non hotpluggable PCI slots.
      
      One need to be careful when doing this: VGA devices
      are now described in SSDT, so we need to drop description from DSDT.
      And ISA devices are used in DSDT so drop them from SSDT.
      Reported-by: NGabriel L. Somlo <gsomlo@gmail.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      
      Also update generated dsdt and pcihp hex dump files.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      8dcf525a
  2. 26 1月, 2014 6 次提交
  3. 10 12月, 2013 1 次提交
    • M
      ACPI DSDT: Make control method `IQCR` serialized · 6b9b4405
      Michael S. Tsirkin 提交于
      Forward-port the following commit from seabios:
      
      commit 995bbeef78b338370f426bf8d0399038c3fa259c
      Author: Paul Menzel <paulepanter@users.sourceforge.net>
      Date:   Thu Oct 3 11:30:52 2013 +0200
      
          The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the
          following warning.
      
                  $ make
                  […]
                    Compiling IASL out/src/fw/acpi-dsdt.hex
                  out/src/fw/acpi-dsdt.dsl.i    360:         Method(IQCR, 1, NotSerialized) {
                  Remark   2120 -                                     ^ Control Method should be made Serialized (due to creation of named objects within)
                  […]
                  ASL Input:     out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords
                  AML Output:    out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes
                  Listing File:  out/src/fw/acpi-dsdt.lst - 143715 bytes
                  Hex Dump:      out/src/fw/acpi-dsdt.hex - 41661 bytes
      
                  Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations
                  […]
      
          After changing the parameter from `NotSerialized` to `Serialized`, the
          remark is indeed gone and there is no size change.
      
          The remark was added in ACPICA version 20130517 [1] and gives the
          following explanation.
      
                  If a thread blocks within the method for any reason, and another thread
                  enters the method, the method will fail because an attempt will be
                  made to create the same (named) object twice.
      
                  In this case, issue a remark that the method should be marked
                  serialized. ACPICA BZ 909.
      
          [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831Signed-off-by: NPaul Menzel <paulepanter@users.sourceforge.net>
      Reported-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Tested-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      6b9b4405
  4. 14 10月, 2013 1 次提交