From owner-svn-src-head@FreeBSD.ORG Sun Apr 27 02:19:53 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AF263618; Sun, 27 Apr 2014 02:19:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BA9C1CEA; Sun, 27 Apr 2014 02:19:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3R2Jr95076570; Sun, 27 Apr 2014 02:19:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3R2Jr60076569; Sun, 27 Apr 2014 02:19:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201404270219.s3R2Jr60076569@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 27 Apr 2014 02:19:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r264997 - head/sys/dev/vt/hw/vga X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Apr 2014 02:19:53 -0000 Author: nwhitehorn Date: Sun Apr 27 02:19:53 2014 New Revision: 264997 URL: http://svnweb.freebsd.org/changeset/base/264997 Log: 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. Modified: head/sys/dev/vt/hw/vga/vga.c Modified: head/sys/dev/vt/hw/vga/vga.c ============================================================================== --- head/sys/dev/vt/hw/vga/vga.c Sun Apr 27 01:15:10 2014 (r264996) +++ head/sys/dev/vt/hw/vga/vga.c Sun Apr 27 02:19:53 2014 (r264997) @@ -45,8 +45,10 @@ __FBSDID("$FreeBSD$"); #if defined(__amd64__) || defined(__i386__) #include #include +#include #include #include +#include #endif /* __amd64__ || __i386__ */ struct vga_softc { @@ -637,6 +639,19 @@ vga_init(struct vt_device *vd) 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; sc->vga_reg_tag = X86_BUS_SPACE_IO;