diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index abf51f52fd0f..8004f7b330fa 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -139,6 +139,12 @@ options 	MAXPHYS=(128*1024)
 #
 options 	INCLUDE_CONFIG_FILE     # Include this file in kernel
 
+#
+# Compile-time defaults for various boot parameters
+#
+options 	BOOTVERBOSE=1
+options 	BOOTHOWTO=RB_MULTIPLE
+
 options 	GEOM_AES		# Don't use, use GEOM_BDE
 options 	GEOM_BDE		# Disk encryption.
 options 	GEOM_BSD		# BSD disklabels
diff --git a/sys/conf/options b/sys/conf/options
index ec9271d46f2d..3b4acd0e5bda 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -68,6 +68,8 @@ TEXTDUMP_VERBOSE	opt_ddb.h
 ADAPTIVE_LOCKMGRS
 ALQ
 AUDIT		opt_global.h
+BOOTHOWTO	opt_global.h
+BOOTVERBOSE	opt_global.h
 CALLOUT_PROFILING
 CAPABILITIES	opt_capsicum.h
 CAPABILITY_MODE	opt_capsicum.h
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index a92b6dbab5b2..5d5346e7b8d8 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -101,10 +101,17 @@ struct	thread thread0 __aligned(16);
 struct	vmspace vmspace0;
 struct	proc *initproc;
 
-int	boothowto = 0;		/* initialized so that it can be patched */
+#ifndef BOOTHOWTO
+#define	BOOTHOWTO	0
+#endif
+int	boothowto = BOOTHOWTO;	/* initialized so that it can be patched */
 SYSCTL_INT(_debug, OID_AUTO, boothowto, CTLFLAG_RD, &boothowto, 0,
 	"Boot control flags, passed from loader");
-int	bootverbose;
+
+#ifndef BOOTVERBOSE
+#define	BOOTVERBOSE	0
+#endif
+int	bootverbose = BOOTVERBOSE;
 SYSCTL_INT(_debug, OID_AUTO, bootverbose, CTLFLAG_RW, &bootverbose, 0,
 	"Control the output of verbose kernel messages");