From owner-svn-src-user@FreeBSD.ORG Mon Dec 1 16:32:46 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 076871065673; Mon, 1 Dec 2008 16:32:46 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6F488FC12; Mon, 1 Dec 2008 16:32:45 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mB1GWjXC030530; Mon, 1 Dec 2008 16:32:45 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mB1GWjgT030529; Mon, 1 Dec 2008 16:32:45 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200812011632.mB1GWjgT030529@svn.freebsd.org> From: Doug Rabson Date: Mon, 1 Dec 2008 16:32:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r185520 - user/dfr/xenhvm/6/sys/amd64/amd64 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Dec 2008 16:32:46 -0000 Author: dfr Date: Mon Dec 1 16:32:45 2008 New Revision: 185520 URL: http://svn.freebsd.org/changeset/base/185520 Log: Add a magic sequence which unplugs block and network devices from Xen's hardware emulator so that we can safely attach PV drivers to them without fighting with the ata and re drivers. Modified: user/dfr/xenhvm/6/sys/amd64/amd64/machdep.c Modified: user/dfr/xenhvm/6/sys/amd64/amd64/machdep.c ============================================================================== --- user/dfr/xenhvm/6/sys/amd64/amd64/machdep.c Mon Dec 1 15:27:00 2008 (r185519) +++ user/dfr/xenhvm/6/sys/amd64/amd64/machdep.c Mon Dec 1 16:32:45 2008 (r185520) @@ -1352,6 +1352,14 @@ hammer_time(u_int64_t modulep, u_int64_t if (env != NULL) strlcpy(kernelname, env, sizeof(kernelname)); +#ifdef XENHVM + if (inw(0x10) == 0x49d2) { + if (bootverbose) + printf("Xen detected: disabling emulated block and network devices\n"); + outw(0x10, 3); + } +#endif + /* Location of kernel stack for locore */ return ((u_int64_t)thread0.td_pcb); }