xref: /openbmc/qemu/hw/acpi/pci-bridge.c (revision ce799a04)
1 /*
2  * QEMU ACPI PCI bridge
3  *
4  * Copyright (c) 2023 Red Hat, Inc.
5  *
6  * Author:
7  *   Igor Mammedov <imammedo@redhat.com>
8  *
9  * SPDX-License-Identifier: GPL-2.0-or-later
10  *
11  * This work is licensed under the terms of the GNU GPL, version 2 or later.
12  * See the COPYING file in the top-level directory.
13  */
14 
15 #include "qemu/osdep.h"
16 #include "hw/acpi/pci.h"
17 #include "hw/pci/pci_bridge.h"
18 #include "hw/acpi/pcihp.h"
19 
20 void build_pci_bridge_aml(AcpiDevAmlIf *adev, Aml *scope)
21 {
22     PCIBridge *br = PCI_BRIDGE(adev);
23 
24     if (!DEVICE(br)->hotplugged) {
25         PCIBus *sec_bus = pci_bridge_get_sec_bus(br);
26 
27         build_append_pci_bus_devices(scope, sec_bus);
28 
29         /*
30          * generate hotplug slots descriptors if
31          * bridge has ACPI PCI hotplug attached,
32          */
33         if (object_property_find(OBJECT(sec_bus), ACPI_PCIHP_PROP_BSEL)) {
34             build_append_pcihp_slots(scope, sec_bus);
35         }
36     }
37 }
38