mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-20 15:43:16 +00:00
Disable vga if EFI framebuffer present. vt(9) should handle this internally
based on efifb's higher priority, but it doesn't, and this at least lets us build a kernel that boots on both BIOS and EFI systems for now.
This commit is contained in:
parent
457b8af283
commit
7ff9cf1d06
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=264997
@ -45,8 +45,10 @@ __FBSDID("$FreeBSD$");
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
#include <vm/vm.h>
|
||||
#include <vm/pmap.h>
|
||||
#include <machine/metadata.h>
|
||||
#include <machine/pmap.h>
|
||||
#include <machine/vmparam.h>
|
||||
#include <sys/linker.h>
|
||||
#endif /* __amd64__ || __i386__ */
|
||||
|
||||
struct vga_softc {
|
||||
@ -636,6 +638,19 @@ vga_init(struct vt_device *vd)
|
||||
struct vga_softc *sc = vd->vd_softc;
|
||||
int textmode = 0;
|
||||
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
/* Disable if EFI framebuffer present. Should be handled by priority
|
||||
* logic in vt(9), but this will do for now. XXX */
|
||||
|
||||
caddr_t kmdp, efifb;
|
||||
kmdp = preload_search_by_type("elf kernel");
|
||||
if (kmdp == NULL)
|
||||
kmdp = preload_search_by_type("elf64 kernel");
|
||||
efifb = preload_search_info(kmdp, MODINFO_METADATA | MODINFOMD_EFI_FB);
|
||||
if (efifb != NULL)
|
||||
return (CN_DEAD);
|
||||
#endif
|
||||
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
sc->vga_fb_tag = X86_BUS_SPACE_MEM;
|
||||
sc->vga_fb_handle = KERNBASE + VGA_MEM_BASE;
|
||||
|
Loading…
Reference in New Issue
Block a user