diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2013-09-14 22:54:44 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2013-09-18 20:48:34 -0400 |
commit | 5a7545ca4acc1213d96af7ce32a707df89940f11 (patch) | |
tree | 25877b455b2fd12e631e03a422bc791c8e0bc7e1 /src/fw | |
parent | 3d0dfe1faedf1c026954cbf3b69bd8049cb75cab (diff) | |
download | seabios-5a7545ca4acc1213d96af7ce32a707df89940f11.tar.gz |
Move fw/acpi.h to std/acpi.h.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/fw')
-rw-r--r-- | src/fw/acpi.c | 4 | ||||
-rw-r--r-- | src/fw/acpi.h | 282 | ||||
-rw-r--r-- | src/fw/biostables.c | 2 | ||||
-rw-r--r-- | src/fw/coreboot.c | 1 | ||||
-rw-r--r-- | src/fw/csm.c | 2 | ||||
-rw-r--r-- | src/fw/paravirt.c | 1 | ||||
-rw-r--r-- | src/fw/pciinit.c | 1 | ||||
-rw-r--r-- | src/fw/xen.c | 1 |
8 files changed, 5 insertions, 289 deletions
diff --git a/src/fw/acpi.c b/src/fw/acpi.c index cba3f682..8f99b34f 100644 --- a/src/fw/acpi.c +++ b/src/fw/acpi.c @@ -5,7 +5,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // struct rsdp_descriptor #include "byteorder.h" // cpu_to_le16 #include "config.h" // CONFIG_* #include "dev-q35.h" @@ -17,6 +16,7 @@ #include "output.h" // dprintf #include "paravirt.h" // RamSize #include "romfile.h" // romfile_loadint +#include "std/acpi.h" // struct rsdp_descriptor #include "string.h" // memset #include "util.h" // MaxCountCPUs #include "x86.h" // readl @@ -756,6 +756,8 @@ find_acpi_features(void) static struct acpi_20_generic_address acpi_reset_reg; static u8 acpi_reset_val; +#define acpi_ga_to_bdf(addr) pci_to_bdf(0, (addr >> 32) & 0xffff, (addr >> 16) & 0xffff) + void acpi_reboot(void) { diff --git a/src/fw/acpi.h b/src/fw/acpi.h deleted file mode 100644 index f0d24d43..00000000 --- a/src/fw/acpi.h +++ /dev/null @@ -1,282 +0,0 @@ -#ifndef __ACPI_H -#define __ACPI_H - -#include "types.h" // u32 - -/* - * ACPI 2.0 Generic Address Space definition. - */ -struct acpi_20_generic_address { - u8 address_space_id; - u8 register_bit_width; - u8 register_bit_offset; - u8 reserved; - u64 address; -} PACKED; -#define acpi_ga_to_bdf(addr) pci_to_bdf(0, (addr >> 32) & 0xffff, (addr >> 16) & 0xffff) - -void acpi_setup(void); -u32 find_resume_vector(void); -void find_acpi_features(void); -void acpi_set_reset_reg(struct acpi_20_generic_address *reg, u8 val); -void acpi_reboot(void); - -#define RSDP_SIGNATURE 0x2052545020445352LL // "RSD PTR " - -struct rsdp_descriptor { /* Root System Descriptor Pointer */ - u64 signature; /* ACPI signature, contains "RSD PTR " */ - u8 checksum; /* To make sum of struct == 0 */ - u8 oem_id [6]; /* OEM identification */ - u8 revision; /* Must be 0 for 1.0, 2 for 2.0 */ - u32 rsdt_physical_address; /* 32-bit physical address of RSDT */ - u32 length; /* XSDT Length in bytes including hdr */ - u64 xsdt_physical_address; /* 64-bit physical address of XSDT */ - u8 extended_checksum; /* Checksum of entire table */ - u8 reserved [3]; /* Reserved field must be 0 */ -}; - -extern struct rsdp_descriptor *RsdpAddr; -extern u32 acpi_pm1a_cnt; - -/* Table structure from Linux kernel (the ACPI tables are under the - BSD license) */ - -#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \ - u32 signature; /* ACPI signature (4 ASCII characters) */ \ - u32 length; /* Length of table, in bytes, including header */ \ - u8 revision; /* ACPI Specification minor version # */ \ - u8 checksum; /* To make sum of entire table == 0 */ \ - u8 oem_id [6]; /* OEM identification */ \ - u8 oem_table_id [8]; /* OEM table identification */ \ - u32 oem_revision; /* OEM revision number */ \ - u8 asl_compiler_id [4]; /* ASL compiler vendor ID */ \ - u32 asl_compiler_revision; /* ASL compiler revision number */ - - -/* - * ACPI 1.0 Fixed ACPI Description Table (FADT) - */ -#define FACP_SIGNATURE 0x50434146 // FACP -struct fadt_descriptor_rev1 -{ - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ - u32 firmware_ctrl; /* Physical address of FACS */ - u32 dsdt; /* Physical address of DSDT */ - u8 model; /* System Interrupt Model */ - u8 reserved1; /* Reserved */ - u16 sci_int; /* System vector of SCI interrupt */ - u32 smi_cmd; /* Port address of SMI command port */ - u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */ - u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */ - u8 S4bios_req; /* Value to write to SMI CMD to enter S4BIOS state */ - u8 reserved2; /* Reserved - must be zero */ - u32 pm1a_evt_blk; /* Port address of Power Mgt 1a acpi_event Reg Blk */ - u32 pm1b_evt_blk; /* Port address of Power Mgt 1b acpi_event Reg Blk */ - u32 pm1a_cnt_blk; /* Port address of Power Mgt 1a Control Reg Blk */ - u32 pm1b_cnt_blk; /* Port address of Power Mgt 1b Control Reg Blk */ - u32 pm2_cnt_blk; /* Port address of Power Mgt 2 Control Reg Blk */ - u32 pm_tmr_blk; /* Port address of Power Mgt Timer Ctrl Reg Blk */ - u32 gpe0_blk; /* Port addr of General Purpose acpi_event 0 Reg Blk */ - u32 gpe1_blk; /* Port addr of General Purpose acpi_event 1 Reg Blk */ - u8 pm1_evt_len; /* Byte length of ports at pm1_x_evt_blk */ - u8 pm1_cnt_len; /* Byte length of ports at pm1_x_cnt_blk */ - u8 pm2_cnt_len; /* Byte Length of ports at pm2_cnt_blk */ - u8 pm_tmr_len; /* Byte Length of ports at pm_tm_blk */ - u8 gpe0_blk_len; /* Byte Length of ports at gpe0_blk */ - u8 gpe1_blk_len; /* Byte Length of ports at gpe1_blk */ - u8 gpe1_base; /* Offset in gpe model where gpe1 events start */ - u8 reserved3; /* Reserved */ - u16 plvl2_lat; /* Worst case HW latency to enter/exit C2 state */ - u16 plvl3_lat; /* Worst case HW latency to enter/exit C3 state */ - u16 flush_size; /* Size of area read to flush caches */ - u16 flush_stride; /* Stride used in flushing caches */ - u8 duty_offset; /* Bit location of duty cycle field in p_cnt reg */ - u8 duty_width; /* Bit width of duty cycle field in p_cnt reg */ - u8 day_alrm; /* Index to day-of-month alarm in RTC CMOS RAM */ - u8 mon_alrm; /* Index to month-of-year alarm in RTC CMOS RAM */ - u8 century; /* Index to century in RTC CMOS RAM */ - u8 reserved4; /* Reserved */ - u8 reserved4a; /* Reserved */ - u8 reserved4b; /* Reserved */ - u32 flags; -} PACKED; - -struct acpi_table_header /* ACPI common table header */ -{ - ACPI_TABLE_HEADER_DEF -} PACKED; - -/* - * ACPI 1.0 Root System Description Table (RSDT) - */ -#define RSDT_SIGNATURE 0x54445352 // RSDT -struct rsdt_descriptor_rev1 -{ - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ - u32 table_offset_entry[0]; /* Array of pointers to other */ - /* ACPI tables */ -} PACKED; - -/* - * ACPI 1.0 Firmware ACPI Control Structure (FACS) - */ -#define FACS_SIGNATURE 0x53434146 // FACS -struct facs_descriptor_rev1 -{ - u32 signature; /* ACPI Signature */ - u32 length; /* Length of structure, in bytes */ - u32 hardware_signature; /* Hardware configuration signature */ - u32 firmware_waking_vector; /* ACPI OS waking vector */ - u32 global_lock; /* Global Lock */ - u32 flags; - u8 resverved3 [40]; /* Reserved - must be zero */ -} PACKED; - -/* - * Differentiated System Description Table (DSDT) - */ -#define DSDT_SIGNATURE 0x54445344 // DSDT - -/* - * MADT values and structures - */ - -/* Values for MADT PCATCompat */ - -#define DUAL_PIC 0 -#define MULTIPLE_APIC 1 - -/* Master MADT */ - -#define APIC_SIGNATURE 0x43495041 // APIC -struct multiple_apic_table -{ - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ - u32 local_apic_address; /* Physical address of local APIC */ - u32 flags; -} PACKED; - -/* Values for Type in APIC sub-headers */ - -#define APIC_PROCESSOR 0 -#define APIC_IO 1 -#define APIC_XRUPT_OVERRIDE 2 -#define APIC_NMI 3 -#define APIC_LOCAL_NMI 4 -#define APIC_ADDRESS_OVERRIDE 5 -#define APIC_IO_SAPIC 6 -#define APIC_LOCAL_SAPIC 7 -#define APIC_XRUPT_SOURCE 8 -#define APIC_RESERVED 9 /* 9 and greater are reserved */ - -/* - * MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE) - */ -#define ACPI_SUB_HEADER_DEF /* Common ACPI sub-structure header */\ - u8 type; \ - u8 length; - -/* Sub-structures for MADT */ - -struct madt_processor_apic -{ - ACPI_SUB_HEADER_DEF - u8 processor_id; /* ACPI processor id */ - u8 local_apic_id; /* Processor's local APIC id */ - u32 flags; -} PACKED; - -struct madt_io_apic -{ - ACPI_SUB_HEADER_DEF - u8 io_apic_id; /* I/O APIC ID */ - u8 reserved; /* Reserved - must be zero */ - u32 address; /* APIC physical address */ - u32 interrupt; /* Global system interrupt where INTI - * lines start */ -} PACKED; - -struct madt_intsrcovr { - ACPI_SUB_HEADER_DEF - u8 bus; - u8 source; - u32 gsi; - u16 flags; -} PACKED; - -struct madt_local_nmi { - ACPI_SUB_HEADER_DEF - u8 processor_id; /* ACPI processor id */ - u16 flags; /* MPS INTI flags */ - u8 lint; /* Local APIC LINT# */ -} PACKED; - -/* - * HPET Description Table - */ -#define HPET_SIGNATURE 0x54455048 // HPET -struct acpi_20_hpet { - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ - u32 timer_block_id; - struct acpi_20_generic_address addr; - u8 hpet_number; - u16 min_tick; - u8 page_protect; -} PACKED; - -/* - * SRAT (NUMA topology description) table - */ - -#define SRAT_SIGNATURE 0x54415253 // SRAT -struct system_resource_affinity_table -{ - ACPI_TABLE_HEADER_DEF - u32 reserved1; - u32 reserved2[2]; -} PACKED; - -#define SRAT_PROCESSOR 0 -#define SRAT_MEMORY 1 - -struct srat_processor_affinity -{ - ACPI_SUB_HEADER_DEF - u8 proximity_lo; - u8 local_apic_id; - u32 flags; - u8 local_sapic_eid; - u8 proximity_hi[3]; - u32 reserved; -} PACKED; - -struct srat_memory_affinity -{ - ACPI_SUB_HEADER_DEF - u8 proximity[4]; - u16 reserved1; - u64 base_addr; - u64 range_length; - u32 reserved2; - u32 flags; - u32 reserved3[2]; -} PACKED; - -/* PCI fw r3.0 MCFG table. */ -/* Subtable */ -struct acpi_mcfg_allocation { - u64 address; /* Base address, processor-relative */ - u16 pci_segment; /* PCI segment group number */ - u8 start_bus_number; /* Starting PCI Bus number */ - u8 end_bus_number; /* Final PCI Bus number */ - u32 reserved; -} PACKED; - -#define MCFG_SIGNATURE 0x4746434d // MCFG -struct acpi_table_mcfg { - ACPI_TABLE_HEADER_DEF; - u8 reserved[8]; - struct acpi_mcfg_allocation allocation[0]; -} PACKED; - -#endif // acpi.h diff --git a/src/fw/biostables.c b/src/fw/biostables.c index fea7511e..a3ee827f 100644 --- a/src/fw/biostables.c +++ b/src/fw/biostables.c @@ -4,10 +4,10 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // struct rsdp_descriptor #include "config.h" // CONFIG_* #include "malloc.h" // malloc_fseg #include "output.h" // dprintf +#include "std/acpi.h" // struct rsdp_descriptor #include "std/mptable.h" // MPTABLE_SIGNATURE #include "std/pirtable.h" // struct pir_header #include "std/smbios.h" // struct smbios_entry_point diff --git a/src/fw/coreboot.c b/src/fw/coreboot.c index 5daed866..e9874e24 100644 --- a/src/fw/coreboot.c +++ b/src/fw/coreboot.c @@ -4,7 +4,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // find_acpi_features #include "boot.h" // boot_add_cbfs #include "byteorder.h" // be32_to_cpu #include "config.h" // CONFIG_* diff --git a/src/fw/csm.c b/src/fw/csm.c index eca97a77..dda6af4a 100644 --- a/src/fw/csm.c +++ b/src/fw/csm.c @@ -4,7 +4,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" #include "biosvar.h" #include "boot.h" #include "bregs.h" @@ -16,6 +15,7 @@ #include "output.h" // dprintf #include "post.h" #include "stacks.h" // wait_threads +#include "std/acpi.h" // RSDP_SIGNATURE #include "std/optionrom.h" // struct rom_header #include "util.h" // copy_smbios diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c index 573511c2..2524b7bf 100644 --- a/src/fw/paravirt.c +++ b/src/fw/paravirt.c @@ -8,7 +8,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // acpi_setup #include "byteorder.h" // be32_to_cpu #include "config.h" // CONFIG_QEMU #include "hw/cmos.h" // CMOS_* diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c index 834847b7..b29db99d 100644 --- a/src/fw/pciinit.c +++ b/src/fw/pciinit.c @@ -5,7 +5,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // acpi_pm1a_cnt #include "config.h" // CONFIG_* #include "dev-q35.h" // Q35_HOST_BRIDGE_PCIEXBAR_ADDR #include "hw/pci.h" // pci_config_readl diff --git a/src/fw/xen.c b/src/fw/xen.c index 92527211..9b000304 100644 --- a/src/fw/xen.c +++ b/src/fw/xen.c @@ -4,7 +4,6 @@ // // This file may be distributed under the terms of the GNU LGPLv3 license. -#include "acpi.h" // find_acpi_features #include "config.h" #include "malloc.h" // memalign_high #include "memmap.h" // add_e820 |