Implement "early 2" locator for mainbus(4) and simplebus(4) to make
authorkettenis <kettenis@openbsd.org>
Wed, 19 Jul 2023 20:26:11 +0000 (20:26 +0000)
committerkettenis <kettenis@openbsd.org>
Wed, 19 Jul 2023 20:26:11 +0000 (20:26 +0000)
drivers attach even earlier.

ok drahn@, deraadt@

sys/arch/arm64/dev/mainbus.c
sys/arch/arm64/dev/simplebus.c

index ebe9bef..f1d84d0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: mainbus.c,v 1.25 2023/05/19 21:15:16 patrick Exp $ */
+/* $OpenBSD: mainbus.c,v 1.26 2023/07/19 20:26:11 kettenis Exp $ */
 /*
  * Copyright (c) 2016 Patrick Wildt <patrick@blueri.se>
  * Copyright (c) 2017 Mark Kettenis <kettenis@openbsd.org>
@@ -154,13 +154,10 @@ mainbus_attach(struct device *parent, struct device *self, void *aux)
        mainbus_attach_apm(self);
 
        /* Scan the whole tree. */
-       sc->sc_early = 1;
-       for (node = OF_child(sc->sc_node); node != 0; node = OF_peer(node))
-               mainbus_attach_node(self, node, NULL);
-
-       sc->sc_early = 0;
-       for (node = OF_child(sc->sc_node); node != 0; node = OF_peer(node))
-               mainbus_attach_node(self, node, NULL);
+       for (sc->sc_early = 2; sc->sc_early >= 0; sc->sc_early--) {
+               for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
+                       mainbus_attach_node(self, node, NULL);
+       }
 
        mainbus_attach_framebuffer(self);
 
index e28a6a2..4bd468e 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: simplebus.c,v 1.16 2022/11/06 12:01:52 patrick Exp $ */
+/* $OpenBSD: simplebus.c,v 1.17 2023/07/19 20:26:11 kettenis Exp $ */
 /*
  * Copyright (c) 2016 Patrick Wildt <patrick@blueri.se>
  *
@@ -140,13 +140,10 @@ simplebus_attach(struct device *parent, struct device *self, void *aux)
        }
 
        /* Scan the whole tree. */
-       sc->sc_early = 1;
-       for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
-               simplebus_attach_node(self, node);
-
-       sc->sc_early = 0;
-       for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
-               simplebus_attach_node(self, node);
+       for (sc->sc_early = 2; sc->sc_early >= 0; sc->sc_early--) {
+               for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
+                       simplebus_attach_node(self, node);
+       }
 }
 
 int