Index: src/sys/arch/i386/stand/boot/boot2.c diff -u src/sys/arch/i386/stand/boot/boot2.c:1.73 src/sys/arch/i386/stand/boot/boot2.c:1.74 --- src/sys/arch/i386/stand/boot/boot2.c:1.73 Sat Apr 4 19:50:54 2020 +++ src/sys/arch/i386/stand/boot/boot2.c Wed Jul 15 12:36:30 2020 @@ -449,7 +449,7 @@ command_help(char *arg) "ls [dev:][path]\n" #endif "dev [dev:]\n" - "consdev {pc|com[0123]|com[0123]kbd|auto}\n" + "consdev {pc|{com[0123]|com[0123]kbd|auto}[,{speed}]}\n" "vesa {modenum|on|off|enabled|disabled|list}\n" #ifndef SMALL "menu (reenters boot menu, if defined in boot.cfg)\n" @@ -581,14 +581,32 @@ void command_consdev(char *arg) { const struct cons_devs *cdp; + char *sep; + int speed; + + sep = strchr(arg, ','); + if (sep != NULL) + *sep++ = '\0'; for (cdp = cons_devs; cdp->name; cdp++) { - if (strcmp(arg, cdp->name) == 0) { - initio(cdp->tag); - print_banner(); - return; + if (strcmp(arg, cdp->name) != 0) + continue; + + if (sep != NULL) { + if (cdp->tag == CONSDEV_PC) + goto error; + + speed = atoi(sep); + if (speed < 0) + goto error; + boot_params.bp_conspeed = speed; } + + initio(cdp->tag); + print_banner(); + return; } +error: printf("invalid console device.\n"); } Index: src/share/man/man8/man8.x86/boot.8 diff -u src/share/man/man8/man8.x86/boot.8:1.20 src/share/man/man8/man8.x86/boot.8:1.21 --- src/share/man/man8/man8.x86/boot.8:1.20 Mon Sep 16 01:57:58 2019 +++ src/share/man/man8/man8.x86/boot.8 Wed Jul 15 12:38:30 2020 @@ -32,7 +32,7 @@ .\" .\" @(#)boot_i386.8 8.2 (Berkeley) 4/19/94 .\" -.Dd September 13, 2019 +.Dd July 15, 2020 .Dt BOOT 8 x86 .Os .Sh NAME @@ -363,7 +363,7 @@ flag in .Va boothowto . Boot the system in silent mode. .El -.It Ic consdev Va dev +.It Ic consdev Va dev Ns Oo Ns , Ns Va speed Oc Immediately switch the console to the specified device .Va dev and reprint the banner. @@ -379,6 +379,17 @@ See .Sx Console Selection Policy in .Xr x86/boot_console 8 . +.Pp +A +.Va speed +for the serial port is optional and defaults to 9600. +If a value of zero is specified, then the current baud rate (set by the +BIOS) will be used. +Setting the +.Va speed +with the +.Ar pc +device is not possible. .It Ic dev Op Va device Set the default drive and partition for subsequent file system operations.