2 * This file is part of the coreboot project.
4 * Copyright (C) 2007-2009 coresystems GmbH
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; version 2 of
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
22 #include <console/console.h>
24 #include <arch/ioapic.h>
25 #include <arch/acpi.h>
26 #include <arch/acpigen.h>
27 #include <arch/smp/mpspec.h>
28 #include <device/device.h>
29 #include <device/pci.h>
30 #include <device/pci_ids.h>
32 #include "southbridge/intel/i82801ix/nvs.h"
33 void acpi_create_gnvs(global_nvs_t
*gnvs
)
35 memset((void *)gnvs
, 0, sizeof(*gnvs
));
37 gnvs
->mpen
= 1; /* Enable Multi Processing */
39 /* Enable both COM ports */
45 unsigned long acpi_fill_madt(unsigned long current
)
48 current
= acpi_create_madt_lapics(current
);
51 current
+= acpi_create_madt_ioapic((acpi_madt_ioapic_t
*) current
,
55 current
+= acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t
*)
57 MP_IRQ_POLARITY_HIGH
|
58 MP_IRQ_TRIGGER_EDGE
, 0x01);
59 current
+= acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t
*)
60 current
, 1, MP_IRQ_POLARITY_HIGH
|
61 MP_IRQ_TRIGGER_EDGE
, 0x01);
64 current
+= acpi_create_madt_irqoverride((acpi_madt_irqoverride_t
*)
65 current
, 0, 0, 2, MP_IRQ_POLARITY_HIGH
| MP_IRQ_TRIGGER_EDGE
);
66 current
+= acpi_create_madt_irqoverride((acpi_madt_irqoverride_t
*)
67 current
, 0, 9, 9, MP_IRQ_POLARITY_HIGH
| MP_IRQ_TRIGGER_LEVEL
);