From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=47749 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Om4ZE-000109-Vi for qemu-devel@nongnu.org; Thu, 19 Aug 2010 08:50:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Om4ZD-0004IM-KR for qemu-devel@nongnu.org; Thu, 19 Aug 2010 08:50:00 -0400 Received: from os.inf.tu-dresden.de ([141.76.48.99]:55460) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Om4ZD-0004I2-Fc for qemu-devel@nongnu.org; Thu, 19 Aug 2010 08:49:59 -0400 Date: Thu, 19 Aug 2010 14:49:55 +0200 From: Adam Lackorzynski Subject: Re: [Qemu-devel] [PATCH] multiboot: Prevent loading of x86_64 images Message-ID: <20100819124955.GK22245@os.inf.tu-dresden.de> References: <20100819112414.GH22245@os.inf.tu-dresden.de> <20100819113635.GI22245@os.inf.tu-dresden.de> <472C9D6F-E1EB-4BE4-8BE9-35D99CC5CB45@suse.de> <20100819123258.GJ22245@os.inf.tu-dresden.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-devel@nongnu.org On Thu Aug 19, 2010 at 14:34:10 +0200, Alexander Graf wrote: > > On 19.08.2010, at 14:32, Adam Lackorzynski wrote: > > > > > On Thu Aug 19, 2010 at 13:40:54 +0200, Alexander Graf wrote: > >> > >> On 19.08.2010, at 13:36, Adam Lackorzynski wrote: > >> > >>> > >>> On Thu Aug 19, 2010 at 13:27:32 +0200, Alexander Graf wrote: > >>>> > >>>> On 19.08.2010, at 13:24, Adam Lackorzynski wrote: > >>>> > >>>>> A via -kernel supplied x86_64 ELF image is being started in 32bit mode. > >>>>> Detect and exit if a 64bit image has been supplied. > >>>> > >>>> According to the multiboot spec, this is the expected behavior, no? At least Xen does it that way... > >>> > >>> Yes, but then the supplied ELF-image should say it's a 32bit one and > >>> switch to 64bit mode itself. That's at least how we do load a 64bit > >>> kernel. > >> > >> Hrm - maybe you're right: > >> > >> busu:~ # readelf -a /boot/xen > >> ELF Header: > >> Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 > >> Class: ELF32 > >> > >> What does the spec say here? What does grub do? > > > > Grub starts the (multiboot-)OS in 32bit mode. Starting directly in 64bit > > mode would require to setup page-tables etc. which is not done. > > The Spec doesn't mention 64bit OS at all, and says that 32bit OSs are > > fine ("An OS image may be an ordinary 32-bit executable file in the > > standard format for that particular operating system, except that it may > > be linked at a non-default load address to avoid loading on top of the > > ..."); > > I think we should do the same grub does here. If grub loads 64-bit elf > binaries and runs them in 32-bit mode, we should too. If it refuses to > load them, we should too. grub1: grub> kernel (nd)/tftpboot/adam/bootstrap.elf Error 13: Invalid or unsupported executable format grub> grub2 loads it but then it crashes and reboots. Looks like a bug to me. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/