Author: allanjude
Date: Sun Jun 17 03:18:56 2018
New Revision: 335276
URL: https://svnweb.freebsd.org/changeset/base/335276

Log:
  gptboot, zfsboot, gptzfsboot: Enable the video and serial consoles early
  
  Normally the serial console is not enabled until /boot.config is read and
  we know how the serial console should be configured.  Initialize the
  consoles early in 'dual' mode (serial & keyboard) with a default serial
  rate of 115200. Then serial is re-initialized once the disk is decrypted
  and the /boot.config file can be read.
  
  This allows the GELIBoot passphrase to be provided via the serial console.
  
  PR:           221526
  Requested by: many
  Reviewed by:  imp
  Sponsored by: Klara Systems
  Differential Revision:        https://reviews.freebsd.org/D15862

Modified:
  head/stand/i386/gptboot/gptboot.c
  head/stand/i386/zfsboot/zfsboot.c

Modified: head/stand/i386/gptboot/gptboot.c
==============================================================================
--- head/stand/i386/gptboot/gptboot.c   Sun Jun 17 03:10:25 2018        
(r335275)
+++ head/stand/i386/gptboot/gptboot.c   Sun Jun 17 03:18:56 2018        
(r335276)
@@ -285,6 +285,16 @@ main(void)
        bootinfo.bi_memsizes_valid++;
        bootinfo.bi_bios_dev = dsk.drive;
 
+       /*
+        * Initialize the serial console early with a modern default of 115200.
+        * Later, we'll read PATH_DOTCONFIG and reconfigure serial according
+        * to the configuration provided.
+        */
+       opts = OPT_SET(RBX_DUAL);
+       ioctrl = (IO_SERIAL|IO_KEYBOARD);
+       if (sio_init(115200) != 0)
+               ioctrl &= ~IO_SERIAL;
+
 #ifdef LOADER_GELI_SUPPORT
        geli_init();
 #endif

Modified: head/stand/i386/zfsboot/zfsboot.c
==============================================================================
--- head/stand/i386/zfsboot/zfsboot.c   Sun Jun 17 03:10:25 2018        
(r335275)
+++ head/stand/i386/zfsboot/zfsboot.c   Sun Jun 17 03:18:56 2018        
(r335276)
@@ -693,6 +693,16 @@ main(void)
     }
     setheap(heap_next, heap_end);
 
+    /*
+     * Initialize the serial console early with a modern default of 115200.
+     * Later, we'll read PATH_DOTCONFIG and reconfigure serial according
+     * to the configuration provided.
+     */
+    opts = OPT_SET(RBX_DUAL);
+    ioctrl = (IO_SERIAL|IO_KEYBOARD);
+    if (sio_init(115200) != 0)
+       ioctrl &= ~IO_SERIAL;
+
     dsk = malloc(sizeof(struct dsk));
     dsk->drive = *(uint8_t *)PTOV(ARGS);
     dsk->type = dsk->drive & DRV_HARD ? TYPE_AD : TYPE_FD;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to