The branch main has been updated by manu:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=4c0c353d0e48d06f82cae16aba02e5923794ba98

commit 4c0c353d0e48d06f82cae16aba02e5923794ba98
Author:     Emmanuel Vadot <[email protected]>
AuthorDate: 2021-11-14 14:32:00 +0000
Commit:     Emmanuel Vadot <[email protected]>
CommitDate: 2021-11-14 14:41:30 +0000

    loader: Add more bus name to pnpautoload
    
    Add ofwbus, iicbus and spibus to pnpautoload so modules under those
    buses will be loaded.
    On my rockpro64 now :
    OK pnpautoload -v
    Autoloading modules for simplebus
    Using DTB provided by EFI at 0x8100000.
    Autoloading modules for ofwbus
    /boot/kernel/rk_spi.ko text=0x14b2 text=0xd4c data=0x4d0+0x8 
syms=[0x8+0xa98+0x8+0x807]
    /boot/kernel/dwwdt.ko text=0x12e2 text=0x78c data=0x4c8+0x10 
syms=[0x8+0x990+0x8+0x6e1]
    Autoloading modules for iicbus
    Autoloading modules for spibus
    /boot/kernel/mx25l.ko text=0x1613 text=0x114c data=0x6e8+0x8 
syms=[0x8+0xa08+0x8+0x665]
    loading required module 'fdt_slicer'
    /boot/kernel/fdt_slicer.ko text=0x95e text=0x340 data=0x290 
syms=[0x8+0x6c0+0x8+0x4a0]
---
 stand/common/module.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/stand/common/module.c b/stand/common/module.c
index e6567c735f36..f28771396af0 100644
--- a/stand/common/module.c
+++ b/stand/common/module.c
@@ -446,7 +446,7 @@ command_pnpload(int argc, char *argv[])
 
 #if defined(LOADER_FDT_SUPPORT)
 static void
-pnpautoload_simplebus(void) {
+pnpautoload_fdt_bus(const char *busname) {
        const char *pnpstring;
        const char *compatstr;
        char *pnpinfo = NULL;
@@ -464,7 +464,7 @@ pnpautoload_simplebus(void) {
                        pnplen += strlen(compatstr) + 1;
                        asprintf(&pnpinfo, "compat=%s", compatstr);
 
-                       module = mod_searchmodule_pnpinfo("simplebus", pnpinfo);
+                       module = mod_searchmodule_pnpinfo(busname, pnpinfo);
                        if (module) {
                                error = mod_loadkld(module, 0, NULL);
                                if (error)
@@ -480,12 +480,15 @@ pnpautoload_simplebus(void) {
 
 struct pnp_bus {
        const char *name;
-       void (*load)(void);
+       void (*load)(const char *busname);
 };
 
 struct pnp_bus pnp_buses[] = {
 #if defined(LOADER_FDT_SUPPORT)
-       {"simplebus", pnpautoload_simplebus},
+       {"simplebus", pnpautoload_fdt_bus},
+       {"ofwbus", pnpautoload_fdt_bus},
+       {"iicbus", pnpautoload_fdt_bus},
+       {"spibus", pnpautoload_fdt_bus},
 #endif
 };
 
@@ -528,8 +531,8 @@ command_pnpautoload(int argc, char *argv[])
                        continue;
                }
                if (verbose)
-                       printf("Autoloading modules for simplebus\n");
-               pnp_buses[i].load();
+                       printf("Autoloading modules for %s\n", 
pnp_buses[i].name);
+               pnp_buses[i].load(pnp_buses[i].name);
                match = 1;
        }
        if (match == 0)

Reply via email to