<div dir="ltr">Hi,<div><br></div><div>BUS_PASS_BUS + BUS_PASS_ORDER_FIRST equals BUS_PASS_BUS, cause BUS_PASS_ORDER_FIRST is defined 0.</div><div><br></div><div>So this is just cosmetical but you are right I should add this.</div><div><br></div><div>Best,</div><div>Nils</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 9 Aug 2019 at 20:33, Christian Mauderer <<a href="mailto:list@c-mauderer.de">list@c-mauderer.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Nils,<br>
<br>
thanks for the patch. It sounds like we will get a behaviour that is<br>
more similar to FreeBSD one with it. But it has the potential to have a<br>
big influence on existing BSPs so it would be good to have some more<br>
feedback for it before merging it.<br>
<br>
On 09/08/2019 15:53, Nils Hölscher wrote:<br>
> I observed all Modules loading in the last fdt pass.<br>
> The reason was, nexus bus loading with BUS_PASS_DEFAULT.<br>
> ---<br>
>  rtemsbsd/rtems/rtems-kernel-nexus.c | 2 +-<br>
>  1 file changed, 1 insertion(+), 1 deletion(-)<br>
> <br>
> diff --git a/rtemsbsd/rtems/rtems-kernel-nexus.c b/rtemsbsd/rtems/rtems-kernel-nexus.c<br>
> index 15b0f84d..197f23f6 100644<br>
> --- a/rtemsbsd/rtems/rtems-kernel-nexus.c<br>
> +++ b/rtemsbsd/rtems/rtems-kernel-nexus.c<br>
> @@ -394,4 +394,4 @@ static driver_t nexus_driver = {<br>
>  <br>
>  static devclass_t nexus_devclass;<br>
>  <br>
> -DRIVER_MODULE(nexus, root, nexus_driver, nexus_devclass, 0, 0);<br>
> +EARLY_DRIVER_MODULE_ORDERED(nexus, root, nexus_driver, nexus_devclass, 0, 0, SI_ORDER_FIRST, BUS_PASS_BUS);<br>
> <br>
<br>
In freeBSD some of the nexus devices have a "BUS_PASS_BUS +<br>
BUS_PASS_ORDER_xxx". Did you have a reason to not add a BUS_PASS_ORDER?<br>
<br>
For example:<br>
<br>
freebsd-org/sys/riscv/riscv/nexus.c:<br>
EARLY_DRIVER_MODULE(nexus_fdt, root, nexus_fdt_driver,<br>
nexus_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_FIRST);<br>
<br>
freebsd-org/sys/arm64/arm64/nexus.c:<br>
EARLY_DRIVER_MODULE(nexus_fdt, root, nexus_fdt_driver,<br>
nexus_fdt_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_FIRST);<br>
<br>
freebsd-org/sys/mips/mips/nexus.c:<br>
EARLY_DRIVER_MODULE(nexus, root, nexus_driver, nexus_devclass, 0, 0,<br>
BUS_PASS_BUS + BUS_PASS_ORDER_EARLY);<br>
<br>
Best regards<br>
<br>
Christian<br>
</blockquote></div>