summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasper <jasper@openbsd.org>2013-03-19 09:17:52 +0000
committerjasper <jasper@openbsd.org>2013-03-19 09:17:52 +0000
commit5a60bede2ff38e7ab52035c0a657e7a84e209bdd (patch)
tree6477678b4e434232d5decef564b2c7083fd752fa
parentin acpi_sleep_mp() properly flush fpu and halt the AP's (diff)
downloadwireguard-openbsd-5a60bede2ff38e7ab52035c0a657e7a84e209bdd.tar.xz
wireguard-openbsd-5a60bede2ff38e7ab52035c0a657e7a84e209bdd.zip
instead of treating boot_info->cf_common_addr special, save the whole of boot_info
for future use. ok yasuoka@
-rw-r--r--sys/arch/octeon/dev/octcf.c6
-rw-r--r--sys/arch/octeon/include/octeonvar.h4
-rw-r--r--sys/arch/octeon/octeon/machdep.c12
3 files changed, 13 insertions, 9 deletions
diff --git a/sys/arch/octeon/dev/octcf.c b/sys/arch/octeon/dev/octcf.c
index c6bc39bf5da..70be8b746de 100644
--- a/sys/arch/octeon/dev/octcf.c
+++ b/sys/arch/octeon/dev/octcf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: octcf.c,v 1.8 2013/03/15 09:18:19 jasper Exp $ */
+/* $OpenBSD: octcf.c,v 1.9 2013/03/19 09:17:52 jasper Exp $ */
/* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */
/*
@@ -162,9 +162,9 @@ int octcf_get_params(struct octcf_softc *, struct ataparams *);
int
octcfprobe(struct device *parent, void *match, void *aux)
{
- extern uint64_t cf_found;
+ extern struct boot_info *octeon_boot_info;
- if (cf_found == 0) {
+ if (octeon_boot_info->cf_common_addr == 0) {
OCTCFDEBUG_PRINT(("octcfprobe: No cf bus found\n"), DEBUG_FUNCS | DEBUG_PROBE);
return 0;
}
diff --git a/sys/arch/octeon/include/octeonvar.h b/sys/arch/octeon/include/octeonvar.h
index 02bbbbabc9d..17f12586340 100644
--- a/sys/arch/octeon/include/octeonvar.h
+++ b/sys/arch/octeon/include/octeonvar.h
@@ -269,8 +269,8 @@ struct boot_info {
uint32_t config_flags;
};
-/* Contains the address for the CF bus, if one was found. */
-uint64_t cf_found;
+extern struct boot_desc *octeon_boot_desc;
+extern struct boot_info *octeon_boot_info;
extern struct octeon_config octeon_configuration;
diff --git a/sys/arch/octeon/octeon/machdep.c b/sys/arch/octeon/octeon/machdep.c
index ed1a5d993dc..f0a6e8cd4f3 100644
--- a/sys/arch/octeon/octeon/machdep.c
+++ b/sys/arch/octeon/octeon/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.27 2013/03/15 09:19:31 jasper Exp $ */
+/* $OpenBSD: machdep.c,v 1.28 2013/03/19 09:17:53 jasper Exp $ */
/*
* Copyright (c) 2009, 2010 Miodrag Vallat.
@@ -92,6 +92,9 @@ struct uvm_constraint_range *uvm_md_constraints[] = { NULL };
vm_map_t exec_map;
vm_map_t phys_map;
+struct boot_desc *octeon_boot_desc;
+struct boot_info *octeon_boot_info;
+
/*
* safepri is a safe priority for sleep to set for a spin-wait
* during autoconfiguration or after a panic.
@@ -248,7 +251,6 @@ mips_init(__register_t a0, __register_t a1, __register_t a2 __unused,
extern char start[], edata[], end[];
extern char exception[], e_exception[];
extern void xtlb_miss;
- extern uint64_t cf_found;
boot_desc = (struct boot_desc *)a3;
boot_info =
@@ -362,10 +364,12 @@ mips_init(__register_t a0, __register_t a1, __register_t a2 __unused,
tlb_init(bootcpu_hwinfo.tlbsize);
/*
- * Save some initial values needed for device configuration.
+ * Save the the boot information for future reference since we can't
+ * retrieve it anymore after we've fully bootstrapped the kernel.
*/
- bcopy(&boot_info->cf_common_addr, &cf_found, sizeof(cf_found));
+ bcopy(&boot_info, &octeon_boot_info, sizeof(octeon_boot_info));
+ bcopy(&boot_desc, &octeon_boot_desc, sizeof(octeon_boot_desc));
/*
* Get a console, very early but after initial mapping setup.