MFC automatic vt(4) selection for UEFI boot
r268158: Prefer vt(4) for UEFI boot The UEFI framebuffer driver vt_efifb requires vt(4), so add a mechanism for the startup routine to set the preferred console. This change is ugly because console init happens very early in the boot, making a cleaner interface difficult. This change is intended only to facilitate the sc(4) / vt(4) transition, and can be reverted once vt(4) is the default. r268160: Fix typos in VTY constant names from r268158 r268982: Don't pass null kmdp to preload_search_info On Xen PVH guests kmdp == NULL. Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
ad2653d85e
commit
63a3fa9dd0
@ -1908,6 +1908,14 @@ hammer_time(u_int64_t modulep, u_int64_t physfree)
|
||||
*/
|
||||
i8254_init();
|
||||
|
||||
/*
|
||||
* Use vt(4) by default for UEFI boot (during the sc(4)/vt(4)
|
||||
* transition).
|
||||
*/
|
||||
if (kmdp != NULL && preload_search_info(kmdp,
|
||||
MODINFO_METADATA | MODINFOMD_EFI_MAP) != NULL)
|
||||
vty_set_preferred(VTY_VT);
|
||||
|
||||
/*
|
||||
* Initialize the console before we print anything out.
|
||||
*/
|
||||
|
@ -652,6 +652,7 @@ sysbeep(int pitch __unused, int period __unused)
|
||||
/*
|
||||
* Temporary support for sc(4) to vt(4) transition.
|
||||
*/
|
||||
static unsigned vty_prefer;
|
||||
static char vty_name[16];
|
||||
SYSCTL_STRING(_kern, OID_AUTO, vty, CTLFLAG_RDTUN, vty_name, 0,
|
||||
"Console vty driver");
|
||||
@ -676,6 +677,10 @@ vty_enabled(unsigned vty)
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if (vty_prefer != 0) {
|
||||
vty_selected = vty_prefer;
|
||||
break;
|
||||
}
|
||||
#if defined(DEV_SC)
|
||||
vty_selected = VTY_SC;
|
||||
#elif defined(DEV_VT)
|
||||
@ -691,3 +696,16 @@ vty_enabled(unsigned vty)
|
||||
return ((vty_selected & vty) != 0);
|
||||
}
|
||||
|
||||
void
|
||||
vty_set_preferred(unsigned vty)
|
||||
{
|
||||
|
||||
vty_prefer = vty;
|
||||
#if !defined(DEV_SC)
|
||||
vty_prefer &= ~VTY_SC;
|
||||
#endif
|
||||
#if !defined(DEV_VT)
|
||||
vty_prefer &= ~VTY_VT;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -137,6 +137,7 @@ void constty_clear(void);
|
||||
#define VTY_SC 0x01
|
||||
#define VTY_VT 0x02
|
||||
int vty_enabled(unsigned int);
|
||||
void vty_set_preferred(unsigned int);
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user