Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107033738
D38492.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D38492.diff
View Options
diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c
--- a/sys/arm/arm/nexus.c
+++ b/sys/arm/arm/nexus.c
@@ -182,8 +182,11 @@
if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0))
panic("nexus_attach irq_rman");
+ /* First, add ofwbus0. */
+ device_add_child(dev, "ofwbus", 0);
+
/*
- * First, deal with the children we know about already
+ * Next, deal with the children we know about already.
*/
bus_generic_probe(dev);
bus_generic_attach(dev);
diff --git a/sys/dev/ofw/ofwbus.c b/sys/dev/ofw/ofwbus.c
--- a/sys/dev/ofw/ofwbus.c
+++ b/sys/dev/ofw/ofwbus.c
@@ -54,12 +54,10 @@
* The ofwbus (which is a pseudo-bus actually) iterates over the nodes that
* hang from the Open Firmware root node and adds them as devices to this bus
* (except some special nodes which are excluded) so that drivers can be
- * attached to them.
+ * attached to them. There should be only one ofwbus in the system, added
+ * directly as a child of nexus0.
*/
-#ifndef __aarch64__
-static device_identify_t ofwbus_identify;
-#endif
static device_probe_t ofwbus_probe;
static device_attach_t ofwbus_attach;
static bus_alloc_resource_t ofwbus_alloc_resource;
@@ -67,9 +65,6 @@
static device_method_t ofwbus_methods[] = {
/* Device interface */
-#ifndef __aarch64__
- DEVMETHOD(device_identify, ofwbus_identify),
-#endif
DEVMETHOD(device_probe, ofwbus_probe),
DEVMETHOD(device_attach, ofwbus_attach),
@@ -87,28 +82,12 @@
BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
MODULE_VERSION(ofwbus, 1);
-#ifndef __aarch64__
-static void
-ofwbus_identify(driver_t *driver, device_t parent)
-{
-
- /* Check if Open Firmware has been instantiated */
- if (OF_peer(0) == 0)
- return;
-
- if (device_find_child(parent, "ofwbus", -1) == NULL)
- BUS_ADD_CHILD(parent, 0, "ofwbus", -1);
-}
-#endif
-
static int
ofwbus_probe(device_t dev)
{
-#ifdef __aarch64__
if (OF_peer(0) == 0)
return (ENXIO);
-#endif
device_set_desc(dev, "Open Firmware Device Tree");
return (BUS_PROBE_NOWILDCARD);
diff --git a/sys/powerpc/powerpc/nexus.c b/sys/powerpc/powerpc/nexus.c
--- a/sys/powerpc/powerpc/nexus.c
+++ b/sys/powerpc/powerpc/nexus.c
@@ -146,6 +146,10 @@
rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR) != 0)
panic("%s: failed to set up rmans.", __func__);
+ /* Add ofwbus0. */
+ device_add_child(dev, "ofwbus", 0);
+
+ /* Now, probe children. */
bus_generic_probe(dev);
bus_generic_attach(dev);
diff --git a/sys/riscv/riscv/nexus.c b/sys/riscv/riscv/nexus.c
--- a/sys/riscv/riscv/nexus.c
+++ b/sys/riscv/riscv/nexus.c
@@ -165,9 +165,13 @@
if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0))
panic("nexus_attach irq_rman");
- nexus_add_child(dev, 8, "timer", 0);
- nexus_add_child(dev, 9, "rcons", 0);
- nexus_add_child(dev, 10, "ofwbus", 0);
+ /*
+ * Add direct children of nexus. Devices will be probed and attached
+ * through ofwbus0.
+ */
+ nexus_add_child(dev, 0, "timer", 0);
+ nexus_add_child(dev, 1, "rcons", 0);
+ nexus_add_child(dev, 2, "ofwbus", 0);
bus_generic_probe(dev);
bus_generic_attach(dev);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 10, 6:57 AM (12 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15740393
Default Alt Text
D38492.diff (3 KB)
Attached To
Mode
D38492: ofwbus: remove arm64 ifdefs
Attached
Detach File
Event Timeline
Log In to Comment