Skip to content
  • Michael S. Tsirkin's avatar
    acpi-build: append description for non-hotplug · 8dcf525a
    Michael S. Tsirkin authored
    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: default avatarGabriel L. Somlo <gsomlo@gmail.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    
    Also update generated dsdt and pcihp hex dump files.
    
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    8dcf525a