Make the loader load ehci.ko by default.
authorSascha Wildner <saw@online.de>
Sun, 4 Jul 2010 15:50:44 +0000 (17:50 +0200)
committerSascha Wildner <saw@online.de>
Sun, 4 Jul 2010 16:30:48 +0000 (18:30 +0200)
It seems to do more good than harm.

HOWEVER!

Unfortunately, There are systems that don't play nice with ehci. One
of my boxes, for example, won't reboot with ehci loaded.

Therefore, the behavior introduced with this commit can be disabled
by doing one of the following things:

1) 'unset ehci_load' from the loader prompt before booting.

2) Booting in 'safe mode'.

3) Putting 'hint.ehci.0.disabled=1' in /boot/loader.conf.

This is all modeled after the way the automatic loading of acpi.ko is
handled.

share/man/man4/ehci.4
sys/boot/common/help.common
sys/boot/common/loader.8
sys/boot/forth/beastie.4th
sys/boot/pc32/libi386/i386_module.c
sys/boot/pc32/loader/help.i386
sys/boot/pc32/loader/main.c

index 2ac6ccc..d88a1c7 100644 (file)
@@ -34,9 +34,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $DragonFly: src/share/man/man4/ehci.4,v 1.3 2006/12/10 02:16:26 sephe Exp $
-.\"
-.Dd November 26, 2006
+.Dd July 4, 2010
 .Dt EHCI 4
 .Os
 .Sh NAME
@@ -63,6 +61,18 @@ USB controllers.
 The handling of this is totally automatic, but can be noticed since
 USB 1.x and USB 2.0 devices plugged in to the same connector appear
 to connect to different USB busses.
+.Pp
+The
+.Nm
+driver is automatically loaded upon boot.
+To disable this behavior temporarily, the
+.Va ehci_load
+variable can be unset at the loader prompt (see
+.Xr loader 8 ) .
+To disable it permanently, the
+.Va hint.ehci.0.disabled
+tunable can be set to 1 in
+.Pa /boot/loader.conf .
 .Sh SEE ALSO
 .Xr cardbus 4 ,
 .Xr ohci 4 ,
index 3a8ce90..2ad539c 100644 (file)
        unset acpi_load
        set hint.acpi.0.disabled="1"
 
+       If needed, disable the use of EHCI with:
+
+       unset ehci_load
+       set hint.ehci.0.disabled="1"
+
 ################################################################################
 # Tautoboot DBoot after a delay
 
 
        will print the current device.
 
+################################################################################
+# TEHCI DControl EHCI module behaviour
+
+       $ehci_load
+
+       If the ehci_load variable is set, the EHCI module will be loaded.
+       The use of EHCI can be disabled with:
+
+       unset ehci_load
+       set hint.ehci.0.disabled="1"
+
 ################################################################################
 # Tload DLoad a kernel or module
        
index ead2046..9d68e8f 100644 (file)
@@ -26,7 +26,7 @@
 .\"
 .\" Note: The date here should be updated whenever a non-trivial
 .\" change is made to the manual page.
-.Dd November 26, 2009
+.Dd July 4, 2010
 .Dt LOADER 8
 .Os
 .Sh NAME
@@ -388,6 +388,8 @@ Defines the current console.
 .It Va currdev
 Selects the default device.
 Syntax for devices is odd.
+.It Va ehci_load
+Unset this to disable automatic loading of the EHCI module.
 .It Va init_path
 Sets the list of binaries which the kernel will try to run as the initial
 process.
index eb26674..ef1731c 100644 (file)
@@ -24,7 +24,6 @@
 \ SUCH DAMAGE.
 \
 \ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.7 2003/10/28 17:18:42 scottl Exp $
-\ $DragonFly: src/sys/boot/forth/beastie.4th,v 1.9 2008/09/02 17:21:15 dillon Exp $
 
 marker task-beastie.4th
 
@@ -233,6 +232,9 @@ set-current
                                s" 1" s" hint.acpi.0.disabled" setenv
                                s" 1" s" loader.acpi_disabled_by_user" setenv
                        then
+                       s" ehci_load" unsetenv
+                       s" 1" s" hint.ehci.0.disabled" setenv
+                       s" 1" s" loader.ehci_disabled_by_user" setenv
                        s" 0" s" hw.ata.ata_dma" setenv
                        s" 0" s" hw.ata.atapi_dma" setenv
                        s" 0" s" hw.ata.wc" setenv
index 237d690..f2676ef 100644 (file)
@@ -24,7 +24,6 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/boot/i386/libi386/i386_module.c,v 1.12 2003/08/25 23:28:31 obrien Exp $
- * $DragonFly: src/sys/boot/pc32/libi386/i386_module.c,v 1.3 2003/11/10 06:08:36 dillon Exp $
  */
 
 /*
@@ -64,5 +63,17 @@ i386_autoload(void)
            printf("ACPI autoload failed - %s\n", strerror(error));
     }
 
+    disabled = 0;
+    rv = getenv("hint.ehci.0.disabled");
+    if (rv != NULL && strncmp(rv, "0", 1) != 0) {
+       disabled = 1;
+    }
+
+    if (getenv("ehci_load") && (!disabled)) {
+       error = mod_load("ehci", NULL, 0, NULL);
+       if (error != 0)
+           printf("EHCI autoload failed - %s\n", strerror(error));
+    }
+
     return(0);
 }
index d40426d..84a61fe 100644 (file)
@@ -13,8 +13,6 @@
        pass information to the ACPI module.  These should not be 
        overridden, or system behaviour will be undefined.
 
-       $DragonFly: src/sys/boot/pc32/loader/help.i386,v 1.3 2008/02/19 21:41:07 thomas Exp $
-
 ################################################################################
 # Treboot DReboot the system
 
index 414bb10..af24fcf 100644 (file)
@@ -240,6 +240,9 @@ main(void)
     /* detect ACPI for future reference */
     biosacpi_detect();
 
+    /* enable EHCI */
+    setenv("ehci_load", "YES", 1);
+
     printf("\n");
     printf("%s, Revision %s\n", bootprog_name, bootprog_rev);
     printf("(%s, %s)\n", bootprog_maker, bootprog_date);