svn commit: r335276 - in head/stand/i386: gptboot zfsboot
Allan Jude
allanjude at FreeBSD.org
Sun Jun 17 03:18:58 UTC 2018
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;
More information about the svn-src-all
mailing list