From owner-freebsd-emulation@FreeBSD.ORG Mon Apr 23 19:56:07 2007 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C634F16A400; Mon, 23 Apr 2007 19:56:07 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from mail.bitblocks.com (ns1.bitblocks.com [64.142.15.60]) by mx1.freebsd.org (Postfix) with ESMTP id AA56113C483; Mon, 23 Apr 2007 19:56:07 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from bitblocks.com (localhost.bitblocks.com [127.0.0.1]) by mail.bitblocks.com (Postfix) with ESMTP id E77F65B3B; Mon, 23 Apr 2007 12:23:09 -0700 (PDT) To: Eric Anderson In-reply-to: Your message of "Sat, 21 Apr 2007 23:02:14 CDT." <462ADE46.3080304@freebsd.org> Date: Mon, 23 Apr 2007 12:23:09 -0700 From: Bakul Shah Message-Id: <20070423192309.E77F65B3B@mail.bitblocks.com> Cc: freebsd-emulation@freebsd.org Subject: Re: experimental qemu-devel port update, please test! X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 19:56:07 -0000 > >> I found and fixed one bug in src/core/osloader.c (in > >> etherboot-5.4.3 code) which allows me to get a little bit > >> further. If anyone wants to play with this more, I can send > >> them my changes. > > > > You may want to post those on the qemu list... > > On this list too, since I'm not subscribed to the qemu list (nor are > many people on this list I'm guessing). The change I am talking about is in etherboot-5.4.3 code, not in qemu. I tried upgrading ports/net/etherboot 5.4.3 but my effort is not in a usable state right now. Download etherboot-5.4.3.tar.bz2, untar it, cd to its top dir and apply the following patch -- this is the only critical change. And I borrowed other changes from the current net/etherboot port. If you can compile rtl8139.zrom fine, run qemu with an explicit -option-rom argument and make sure you use model=rtl8139. it will use dhcp to get an address, load freebsd's pxeboot and jump to it at which point everything halts. May be etherboot does too much. Since freebsd does pxeboot on a real machine, ideally the exact same pxeboot should work with etherboot. --- src/core/osloader.c.orig Sat Feb 24 06:44:59 2007 +++ src/core/osloader.c Sat Apr 21 21:50:37 2007 @@ -344,6 +344,8 @@ } #endif /* defined(ELF_IMAGE) && defined(IMAGE_MULTIBOOT) */ + if (!len) goto done; + /* Either len is greater or the skip is greater */ if ((skip_sectors > (len >> 9)) || ((skip_sectors == (len >> 9)) && (skip_bytes >= (len & 0x1ff)))) { @@ -355,6 +357,7 @@ skip_bytes -= len; } else { + done: len -= (skip_sectors << 9) + skip_bytes; data += (skip_sectors << 9) + skip_bytes; skip_sectors = os_download(data, len, eof);