xref: /openbmc/qemu/include/hw/acpi/piix4.h (revision 674acdd17808052519aafcbee1583ad89b66181a)
12bfd0845SMark Cave-Ayland /*
22bfd0845SMark Cave-Ayland  * ACPI implementation
32bfd0845SMark Cave-Ayland  *
42bfd0845SMark Cave-Ayland  * Copyright (c) 2006 Fabrice Bellard
52bfd0845SMark Cave-Ayland  *
62bfd0845SMark Cave-Ayland  * This library is free software; you can redistribute it and/or
72bfd0845SMark Cave-Ayland  * modify it under the terms of the GNU Lesser General Public
82bfd0845SMark Cave-Ayland  * License version 2.1 as published by the Free Software Foundation.
92bfd0845SMark Cave-Ayland  *
102bfd0845SMark Cave-Ayland  * This library is distributed in the hope that it will be useful,
112bfd0845SMark Cave-Ayland  * but WITHOUT ANY WARRANTY; without even the implied warranty of
122bfd0845SMark Cave-Ayland  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
132bfd0845SMark Cave-Ayland  * Lesser General Public License for more details.
142bfd0845SMark Cave-Ayland  *
152bfd0845SMark Cave-Ayland  * You should have received a copy of the GNU Lesser General Public
162bfd0845SMark Cave-Ayland  * License along with this library; if not, see <http://www.gnu.org/licenses/>
172bfd0845SMark Cave-Ayland  *
182bfd0845SMark Cave-Ayland  * Contributions after 2012-01-13 are licensed under the terms of the
192bfd0845SMark Cave-Ayland  * GNU GPL, version 2 or (at your option) any later version.
202bfd0845SMark Cave-Ayland  */
212bfd0845SMark Cave-Ayland 
222bfd0845SMark Cave-Ayland #ifndef HW_ACPI_PIIX4_H
232bfd0845SMark Cave-Ayland #define HW_ACPI_PIIX4_H
242bfd0845SMark Cave-Ayland 
25*edf5ca5dSMarkus Armbruster #include "hw/pci/pci_device.h"
262bfd0845SMark Cave-Ayland #include "hw/acpi/acpi.h"
272bfd0845SMark Cave-Ayland #include "hw/acpi/cpu_hotplug.h"
282bfd0845SMark Cave-Ayland #include "hw/acpi/memory_hotplug.h"
292bfd0845SMark Cave-Ayland #include "hw/acpi/pcihp.h"
302bfd0845SMark Cave-Ayland #include "hw/i2c/pm_smbus.h"
312bfd0845SMark Cave-Ayland #include "hw/isa/apm.h"
322bfd0845SMark Cave-Ayland 
332bfd0845SMark Cave-Ayland #define TYPE_PIIX4_PM "PIIX4_PM"
342bfd0845SMark Cave-Ayland OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM)
352bfd0845SMark Cave-Ayland 
362bfd0845SMark Cave-Ayland struct PIIX4PMState {
372bfd0845SMark Cave-Ayland     /*< private >*/
382bfd0845SMark Cave-Ayland     PCIDevice parent_obj;
392bfd0845SMark Cave-Ayland     /*< public >*/
402bfd0845SMark Cave-Ayland 
412bfd0845SMark Cave-Ayland     MemoryRegion io;
422bfd0845SMark Cave-Ayland     uint32_t io_base;
432bfd0845SMark Cave-Ayland 
442bfd0845SMark Cave-Ayland     MemoryRegion io_gpe;
452bfd0845SMark Cave-Ayland     ACPIREGS ar;
462bfd0845SMark Cave-Ayland 
472bfd0845SMark Cave-Ayland     APMState apm;
482bfd0845SMark Cave-Ayland 
492bfd0845SMark Cave-Ayland     PMSMBus smb;
502bfd0845SMark Cave-Ayland     uint32_t smb_io_base;
512bfd0845SMark Cave-Ayland 
522bfd0845SMark Cave-Ayland     qemu_irq irq;
532bfd0845SMark Cave-Ayland     qemu_irq smi_irq;
542bfd0845SMark Cave-Ayland     bool smm_enabled;
552bfd0845SMark Cave-Ayland     bool smm_compat;
562bfd0845SMark Cave-Ayland     Notifier machine_ready;
572bfd0845SMark Cave-Ayland     Notifier powerdown_notifier;
582bfd0845SMark Cave-Ayland 
592bfd0845SMark Cave-Ayland     AcpiPciHpState acpi_pci_hotplug;
602bfd0845SMark Cave-Ayland     bool not_migrate_acpi_index;
612bfd0845SMark Cave-Ayland 
622bfd0845SMark Cave-Ayland     uint8_t disable_s3;
632bfd0845SMark Cave-Ayland     uint8_t disable_s4;
642bfd0845SMark Cave-Ayland     uint8_t s4_val;
652bfd0845SMark Cave-Ayland 
662bfd0845SMark Cave-Ayland     bool cpu_hotplug_legacy;
672bfd0845SMark Cave-Ayland     AcpiCpuHotplug gpe_cpu;
682bfd0845SMark Cave-Ayland     CPUHotplugState cpuhp_state;
692bfd0845SMark Cave-Ayland 
702bfd0845SMark Cave-Ayland     MemHotplugState acpi_memory_hotplug;
712bfd0845SMark Cave-Ayland };
722bfd0845SMark Cave-Ayland 
732bfd0845SMark Cave-Ayland #endif
74