From owner-freebsd-virtualization@freebsd.org Fri Jul 19 10:02:16 2019 Return-Path: Delivered-To: freebsd-virtualization@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3EF8EBE079 for ; Fri, 19 Jul 2019 10:02:16 +0000 (UTC) (envelope-from henrik@gulbra.net) Received: from srv.gulbra.net (ec2-174-129-193-206.compute-1.amazonaws.com [174.129.193.206]) by mx1.freebsd.org (Postfix) with ESMTP id 78A548EA79 for ; Fri, 19 Jul 2019 10:02:15 +0000 (UTC) (envelope-from henrik@gulbra.net) Received: from srv.gulbra.net (localhost [127.0.0.1]) by srv.gulbra.net (Postfix) with ESMTP id 7E43AE1 for ; Fri, 19 Jul 2019 10:02:14 +0000 (UTC) Received: by srv.gulbra.net (Postfix, from userid 33) id 4AA1AF8; Fri, 19 Jul 2019 10:02:14 +0000 (UTC) To: FreeBSD Virtualization Subject: New video BIOS for bhyve X-PHP-Originating-Script: 0:rcube.php MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 19 Jul 2019 12:02:14 +0200 From: Henrik Gulbrandsen Message-ID: X-Sender: henrik@gulbra.net User-Agent: Roundcube Webmail/1.2-beta X-Rspamd-Queue-Id: 78A548EA79 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.99 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.88)[-0.875,0]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-0.995,0]; HAS_X_POS(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-virtualization@freebsd.org]; DMARC_NA(0.00)[gulbra.net]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_ONE(0.00)[1]; AUTH_NA(1.00)[]; RCVD_COUNT_THREE(0.00)[3]; PHP_SCRIPT_ROOT(1.00)[]; TO_DN_ALL(0.00)[]; MX_GOOD(-0.01)[cached: srv.gulbra.net]; NEURAL_HAM_SHORT(-0.95)[-0.946,0]; R_SPF_NA(0.00)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:14618, ipnet:174.129.0.0/16, country:US]; IP_SCORE(-0.66)[asn: 14618(-3.25), country: US(-0.05)]; MID_RHS_WWW(0.50)[] X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jul 2019 10:02:16 -0000 In the last few months, I have been extending the video support in bhyve to allow booting from live ISO images, which sometimes lack UEFI loaders. There was already a video BIOS with dormant support for VGA, but I could not use that, because the X11 int10 module runs a real-mode x86 emulator that aborts when it tries to enter the C code running in protected mode. Instead, I added support for PCI Expansion ROMs to bhyve and wrote a new SVGA video BIOS from scratch in 8086 assembly code. The current features include VGA modes 3 and 12h, 24-bit and 32-bit VESA modes from 640x480 to 1920x1200, and enough BIOS functions to boot a typical Linux desktop. At this point, I think it's good enough for a preliminary release, so if you are interested, you will find all patch files at the following URL: https://www.gulbra.net/freebsd-bhyve/ My apologies for the 15-year-old web layout, which will probably break horribly on modern smartphones. Also, I hope I have not duplicated the work of someone else. I didn't want to announce this before it worked. /Henrik