summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2005-03-18 03:29:39 +0000
committergrehan <grehan@FreeBSD.org>2005-03-18 03:29:39 +0000
commit52e8c7d46a9820283781fda9233bdf609931135f (patch)
tree8984dab99d5c93ccc085141c74e1ec2490d82ac6
parent3de17655eb2078efb7e1e5c0dc9f4e5dbb7081ec (diff)
downloadFreeBSD-src-52e8c7d46a9820283781fda9233bdf609931135f.zip
FreeBSD-src-52e8c7d46a9820283781fda9233bdf609931135f.tar.gz
Split configure into 3 steps ala sparc64
Obtained from: iedowse, sparc64
-rw-r--r--sys/powerpc/powerpc/autoconf.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/sys/powerpc/powerpc/autoconf.c b/sys/powerpc/powerpc/autoconf.c
index 06787f7..2f3b527 100644
--- a/sys/powerpc/powerpc/autoconf.c
+++ b/sys/powerpc/powerpc/autoconf.c
@@ -35,18 +35,35 @@ __FBSDID("$FreeBSD$");
static device_t nexusdev;
+static void configure_first(void *);
static void configure(void *);
-SYSINIT(configure, SI_SUB_CONFIGURE, SI_ORDER_THIRD, configure, NULL)
+static void configure_final(void *);
+
+SYSINIT(configure1, SI_SUB_CONFIGURE, SI_ORDER_FIRST, configure_first, NULL);
+/* SI_ORDER_SECOND is hookable */
+SYSINIT(configure2, SI_SUB_CONFIGURE, SI_ORDER_THIRD, configure, NULL);
+/* SI_ORDER_MIDDLE is hookable */
+SYSINIT(configure3, SI_SUB_CONFIGURE, SI_ORDER_ANY, configure_final, NULL);
/*
* Determine i/o configuration for a machine.
*/
static void
+configure_first(void *dummy)
+{
+}
+
+static void
configure(void *dummy)
{
nexusdev = device_add_child(root_bus, "nexus", 0);
+
root_bus_configure();
+}
+static void
+configure_final(void *dummy)
+{
/*
* Enable device interrupts
*/
@@ -54,3 +71,5 @@ configure(void *dummy)
cold = 0;
}
+
+
OpenPOWER on IntegriCloud