summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amd64')
-rw-r--r--sys/arch/amd64/amd64/acpi_machdep.c7
-rw-r--r--sys/arch/amd64/amd64/bios.c39
-rw-r--r--sys/arch/amd64/amd64/mainbus.c27
-rw-r--r--sys/arch/amd64/conf/GENERIC4
-rw-r--r--sys/arch/amd64/conf/RAMDISK5
-rw-r--r--sys/arch/amd64/conf/RAMDISK_CD5
-rw-r--r--sys/arch/amd64/include/biosvar.h18
7 files changed, 63 insertions, 42 deletions
diff --git a/sys/arch/amd64/amd64/acpi_machdep.c b/sys/arch/amd64/amd64/acpi_machdep.c
index ab7d11fa168..e5eb67b06b1 100644
--- a/sys/arch/amd64/amd64/acpi_machdep.c
+++ b/sys/arch/amd64/amd64/acpi_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi_machdep.c,v 1.10 2007/11/25 09:11:12 jsg Exp $ */
+/* $OpenBSD: acpi_machdep.c,v 1.11 2007/12/05 19:17:13 deraadt Exp $ */
/*
* Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
*
@@ -100,7 +100,7 @@ acpi_scan(struct acpi_mem_map *handle, paddr_t pa, size_t len)
}
int
-acpi_probe(struct device *parent, struct cfdata *match, struct acpi_attach_args *aaa)
+acpi_probe(struct device *parent, struct cfdata *match, struct bios_attach_args *ba)
{
struct acpi_mem_map handle;
u_int8_t *ptr;
@@ -143,7 +143,7 @@ acpi_probe(struct device *parent, struct cfdata *match, struct acpi_attach_args
return (0);
havebase:
- aaa->aaa_pbase = ptr - handle.va + handle.pa;
+ ba->ba_acpipbase = ptr - handle.va + handle.pa;
acpi_unmap(&handle);
return (1);
@@ -153,6 +153,7 @@ void
acpi_attach_machdep(struct acpi_softc *sc)
{
extern void (*cpuresetfn)(void);
+
sc->sc_interrupt = isa_intr_establish(NULL, sc->sc_fadt->sci_int,
IST_LEVEL, IPL_TTY, acpi_interrupt, sc, sc->sc_dev.dv_xname);
cpuresetfn = acpi_reset;
diff --git a/sys/arch/amd64/amd64/bios.c b/sys/arch/amd64/amd64/bios.c
index 3a8684c4a67..d204e377687 100644
--- a/sys/arch/amd64/amd64/bios.c
+++ b/sys/arch/amd64/amd64/bios.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bios.c,v 1.14 2007/11/25 16:40:04 jmc Exp $ */
+/* $OpenBSD: bios.c,v 1.15 2007/12/05 19:17:14 deraadt Exp $ */
/*
* Copyright (c) 2006 Gordon Willem Klok <gklok@cogeco.ca>
*
@@ -31,6 +31,13 @@
#include <dev/isa/isareg.h>
#include <amd64/include/isa_machdep.h>
+#include <dev/pci/pcivar.h>
+
+#include <dev/acpi/acpireg.h>
+#include <dev/acpi/acpivar.h>
+
+#include "acpi.h"
+#include "pci.h"
struct bios_softc {
struct device sc_dev;
@@ -39,6 +46,7 @@ struct bios_softc {
void smbios_info(char *);
int bios_match(struct device *, void *, void *);
void bios_attach(struct device *, struct device *, void *);
+int bios_print(void *, const char *);
char *fixstring(char *);
struct cfattach bios_ca = {
@@ -68,7 +76,7 @@ bios_match(struct device *parent, void *match , void *aux)
struct bios_attach_args *bia = aux;
/* only one */
- if (bios_cd.cd_ndevs || strcmp(bia->bios_dev, bios_cd.cd_name))
+ if (bios_cd.cd_ndevs || strcmp(bia->ba_name, bios_cd.cd_name))
return 0;
return 1;
}
@@ -146,6 +154,22 @@ bios_attach(struct device *parent, struct device *self, void *aux)
break;
}
printf("\n");
+
+#if NACPI > 0
+#if NPCI > 0
+ if (pci_mode != 0)
+#endif
+ {
+ struct bios_attach_args ba;
+
+ memset(&ba, 0, sizeof(ba));
+ ba.ba_name = "acpi";
+ ba.ba_iot = X86_BUS_SPACE_IO;
+ ba.ba_memt = X86_BUS_SPACE_MEM;
+
+ config_found(self, &ba, bios_print);
+ }
+#endif
}
/*
@@ -383,3 +407,14 @@ smbios_info(char * str)
}
}
}
+
+int
+bios_print(void *aux, const char *pnp)
+{
+ struct bios_attach_args *ba = aux;
+
+ if (pnp)
+ printf("%s at %s",
+ ba->ba_name, pnp);
+ return (UNCONF);
+}
diff --git a/sys/arch/amd64/amd64/mainbus.c b/sys/arch/amd64/amd64/mainbus.c
index 3b5bc9743b8..a9627064289 100644
--- a/sys/arch/amd64/amd64/mainbus.c
+++ b/sys/arch/amd64/amd64/mainbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mainbus.c,v 1.13 2007/11/16 16:16:07 deraadt Exp $ */
+/* $OpenBSD: mainbus.c,v 1.14 2007/12/05 19:17:14 deraadt Exp $ */
/* $NetBSD: mainbus.c,v 1.1 2003/04/26 18:39:29 fvdl Exp $ */
/*
@@ -52,10 +52,8 @@
#include <machine/i82093var.h>
#include <machine/mpbiosvar.h>
-#if NACPI > 0
#include <dev/acpi/acpireg.h>
#include <dev/acpi/acpivar.h>
-#endif
#if NIPMI > 0
#include <dev/ipmivar.h>
@@ -84,9 +82,6 @@ union mainbus_attach_args {
struct isabus_attach_args mba_iba;
struct cpu_attach_args mba_caa;
struct apic_attach_args aaa_caa;
-#if NACPI > 0
- struct acpi_attach_args mba_aaa;
-#endif
#if NIPMI > 0
struct ipmi_attach_args mba_iaa;
#endif
@@ -160,27 +155,13 @@ mainbus_attach(struct device *parent, struct device *self, void *aux)
#if NBIOS > 0
{
- mba.mba_bios.bios_dev = "bios";
- mba.mba_bios.bios_iot = X86_BUS_SPACE_IO;
- mba.mba_bios.bios_memt = X86_BUS_SPACE_MEM;
+ mba.mba_bios.ba_name = "bios";
+ mba.mba_bios.ba_iot = X86_BUS_SPACE_IO;
+ mba.mba_bios.ba_memt = X86_BUS_SPACE_MEM;
config_found(self, &mba.mba_bios, mainbus_print);
}
#endif
-#if NACPI > 0
-#if NPCI > 0
- if (pci_mode != 0)
-#endif
- {
- memset(&mba.mba_aaa, 0, sizeof(mba.mba_aaa));
- mba.mba_aaa.aaa_name = "acpi";
- mba.mba_aaa.aaa_iot = X86_BUS_SPACE_IO;
- mba.mba_aaa.aaa_memt = X86_BUS_SPACE_MEM;
-
- config_found(self, &mba.mba_aaa, mainbus_print);
- }
-#endif
-
#if NIPMI > 0
{
memset(&mba.mba_iaa, 0, sizeof(mba.mba_iaa));
diff --git a/sys/arch/amd64/conf/GENERIC b/sys/arch/amd64/conf/GENERIC
index ae3264f79a0..ffe077d5b60 100644
--- a/sys/arch/amd64/conf/GENERIC
+++ b/sys/arch/amd64/conf/GENERIC
@@ -1,4 +1,4 @@
-# $OpenBSD: GENERIC,v 1.206 2007/11/25 17:11:12 oga Exp $
+# $OpenBSD: GENERIC,v 1.207 2007/12/05 19:17:14 deraadt Exp $
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
@@ -40,7 +40,7 @@ pci* at mainbus0
#option ACPIVERBOSE
-acpi0 at mainbus?
+acpi0 at bios?
acpitimer* at acpi?
acpihpet* at acpi?
acpiac* at acpi?
diff --git a/sys/arch/amd64/conf/RAMDISK b/sys/arch/amd64/conf/RAMDISK
index 3bb08fc5231..1f5285754fe 100644
--- a/sys/arch/amd64/conf/RAMDISK
+++ b/sys/arch/amd64/conf/RAMDISK
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK,v 1.42 2007/11/15 22:21:31 deraadt Exp $
+# $OpenBSD: RAMDISK,v 1.43 2007/12/05 19:17:14 deraadt Exp $
machine amd64 # architecture, used by config; REQUIRED
@@ -32,8 +32,9 @@ option MINIROOTSIZE=4480
config bsd root on rd0a swap on rd0b and wd0b and sd0b
mainbus0 at root
+bios0 at mainbus?
-acpi0 at mainbus?
+acpi0 at bios?
#acpitimer* at acpi?
#acpihpet* at acpi?
#acpiac* at acpi?
diff --git a/sys/arch/amd64/conf/RAMDISK_CD b/sys/arch/amd64/conf/RAMDISK_CD
index 09e4d38e5d4..68c27e0c93e 100644
--- a/sys/arch/amd64/conf/RAMDISK_CD
+++ b/sys/arch/amd64/conf/RAMDISK_CD
@@ -1,4 +1,4 @@
-# $OpenBSD: RAMDISK_CD,v 1.78 2007/11/15 22:21:31 deraadt Exp $
+# $OpenBSD: RAMDISK_CD,v 1.79 2007/12/05 19:17:14 deraadt Exp $
machine amd64 # architecture, used by config; REQUIRED
@@ -33,8 +33,9 @@ option MINIROOTSIZE=4480
config bsd root on rd0a swap on rd0b and wd0b and sd0b
mainbus0 at root
+bios0 at mainbus?
-acpi0 at mainbus?
+acpi0 at bios?
#acpitimer* at acpi?
#acpihpet* at acpi?
#acpiac* at acpi?
diff --git a/sys/arch/amd64/include/biosvar.h b/sys/arch/amd64/include/biosvar.h
index c881b648ad7..92e505a2532 100644
--- a/sys/arch/amd64/include/biosvar.h
+++ b/sys/arch/amd64/include/biosvar.h
@@ -1,5 +1,5 @@
/* XXX - DSR */
-/* $OpenBSD: biosvar.h,v 1.7 2006/05/20 22:36:33 deraadt Exp $ */
+/* $OpenBSD: biosvar.h,v 1.8 2007/12/05 19:17:14 deraadt Exp $ */
/*
* Copyright (c) 1997-1999 Michael Shalayeff
@@ -226,17 +226,19 @@ extern volatile struct BIOS_regs {
#include <machine/bus.h>
struct bios_attach_args {
- char *bios_dev;
- u_int bios_func;
- bus_space_tag_t bios_iot;
- bus_space_tag_t bios_memt;
+ char *ba_name;
+ u_int ba_biosfunc;
+ bus_space_tag_t ba_iot;
+ bus_space_tag_t ba_memt;
union {
- void *_p;
- bios_apminfo_t *_bios_apmp;
+ void *_p;
+ bios_apminfo_t *_ba_apmp;
+ paddr_t _ba_acpipbase;
} _;
};
-#define bios_apmp _._bios_apmp
+#define ba_apmp _._ba_apmp
+#define ba_acpipbase _._ba_acpipbase
struct consdev;
struct proc;