diff options
Diffstat (limited to 'sys/boot/ia64/ski/acpi_stub.c')
-rw-r--r-- | sys/boot/ia64/ski/acpi_stub.c | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/sys/boot/ia64/ski/acpi_stub.c b/sys/boot/ia64/ski/acpi_stub.c deleted file mode 100644 index b16bb0a..0000000 --- a/sys/boot/ia64/ski/acpi_stub.c +++ /dev/null @@ -1,183 +0,0 @@ -/*- - * Copyright (c) 2003 Marcel Moolenaar - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <contrib/dev/acpica/include/acpi.h> - -#define APIC_IO_SAPIC 6 -#define APIC_LOCAL_SAPIC 7 - -#pragma pack(1) - -typedef struct /* LOCAL SAPIC */ -{ - ACPI_SUBTABLE_HEADER Header; - UINT8 ProcessorId; /* ACPI processor id */ - UINT8 LocalSapicId; /* Processor local SAPIC id */ - UINT8 LocalSapicEid; /* Processor local SAPIC eid */ - UINT8 Reserved[3]; - UINT32 ProcessorEnabled: 1; - UINT32 FlagsReserved: 31; -} LOCAL_SAPIC; - -typedef struct /* IO SAPIC */ -{ - ACPI_SUBTABLE_HEADER Header; - UINT8 IoSapicId; /* I/O SAPIC ID */ - UINT8 Reserved; /* reserved - must be zero */ - UINT32 Vector; /* interrupt base */ - UINT64 IoSapicAddress; /* SAPIC's physical address */ -} IO_SAPIC; - -/* - */ - -struct { - ACPI_TABLE_MADT MADT; - ACPI_MADT_LOCAL_SAPIC cpu0; - ACPI_MADT_LOCAL_SAPIC cpu1; - ACPI_MADT_LOCAL_SAPIC cpu2; - ACPI_MADT_LOCAL_SAPIC cpu3; - ACPI_MADT_IO_SAPIC sapic; -} apic = { - /* Header. */ - { - ACPI_SIG_MADT, /* Signature. */ - sizeof(apic), /* Length of table. */ - 0, /* ACPI minor revision. */ - 0, /* Checksum. */ - "FBSD", /* OEM Id. */ - "SKI", /* OEM table Id. */ - 0, /* OEM revision. */ - "FBSD", /* ASL compiler Id. */ - 0, /* ASL revision. */ - 0xfee00000, - }, - /* cpu0. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu0), /* Length. */ - 0, /* ACPI processor id */ - 0, /* Processor local SAPIC id */ - 0, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 1, /* FL: Enabled. */ - }, - /* cpu1. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu1), /* Length. */ - 1, /* ACPI processor id */ - 0, /* Processor local SAPIC id */ - 1, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 1, /* FL: Enabled. */ - }, - /* cpu2. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu2), /* Length. */ - 2, /* ACPI processor id */ - 1, /* Processor local SAPIC id */ - 0, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 0, /* FL: Enabled. */ - }, - /* cpu3. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu3), /* Length. */ - 3, /* ACPI processor id */ - 1, /* Processor local SAPIC id */ - 1, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 0, /* FL: Enabled. */ - }, - /* sapic. */ - { - APIC_IO_SAPIC, /* Type. */ - sizeof(apic.sapic), /* Length. */ - 4, /* IO SAPIC id. */ - 0, - 16, /* Interrupt base. */ - 0xfec00000 /* IO SAPIC address. */ - } -}; - -struct { - ACPI_TABLE_HEADER Header; - UINT64 apic_tbl; -} xsdt = { - { - ACPI_SIG_XSDT, /* Signature. */ - sizeof(xsdt), /* Length of table. */ - 0, /* ACPI minor revision. */ - 0, /* XXX checksum. */ - "FBSD", /* OEM Id. */ - "SKI", /* OEM table Id. */ - 0, /* OEM revision. */ - "FBSD", /* ASL compiler Id. */ - 0 /* ASL revision. */ - }, - 0UL /* XXX APIC table address. */ -}; - -ACPI_TABLE_RSDP acpi_root = { - ACPI_SIG_RSDP, - 0, /* XXX checksum. */ - "FBSD", - 2, /* ACPI Rev 2.0. */ - 0UL, - sizeof(xsdt), /* XSDT length. */ - 0UL, /* XXX PA of XSDT. */ - 0, /* XXX Extended checksum. */ -}; - -static void -cksum(void *addr, int sz, UINT8 *sum) -{ - UINT8 *p, s; - - p = addr; - s = 0; - while (sz--) - s += *p++; - *sum = -s; -} - -void -acpi_stub_init(void) -{ - acpi_root.XsdtPhysicalAddress = (UINT64)&xsdt; - cksum(&acpi_root, 20, &acpi_root.Checksum); - cksum(&acpi_root, sizeof(acpi_root), &acpi_root.ExtendedChecksum); - - cksum(&apic, sizeof(apic), &apic.MADT.Header.Checksum); - xsdt.apic_tbl = (UINT32)&apic; - cksum(&xsdt, sizeof(xsdt), &xsdt.Header.Checksum); -} |