aboutsummaryrefslogtreecommitdiff
path: root/stand/i386/zfsboot
diff options
context:
space:
mode:
authorAllan Jude <allanjude@FreeBSD.org>2018-06-17 03:18:56 +0000
committerAllan Jude <allanjude@FreeBSD.org>2018-06-17 03:18:56 +0000
commit6fee3bb8e1fae97ef0addd36ff08f604fae3fcb6 (patch)
tree2e93fcc337b811e408165b978b91be77cdf717f4 /stand/i386/zfsboot
parent68e520fea44bd3223e16a13161c3f0636d868d7d (diff)
downloadsrc-6fee3bb8e1fae97ef0addd36ff08f604fae3fcb6.tar.gz
src-6fee3bb8e1fae97ef0addd36ff08f604fae3fcb6.zip
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
Notes
Notes: svn path=/head/; revision=335276
Diffstat (limited to 'stand/i386/zfsboot')
-rw-r--r--stand/i386/zfsboot/zfsboot.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/stand/i386/zfsboot/zfsboot.c b/stand/i386/zfsboot/zfsboot.c
index 8f67121e6ce2..c47b95762250 100644
--- a/stand/i386/zfsboot/zfsboot.c
+++ b/stand/i386/zfsboot/zfsboot.c
@@ -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;