grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Loading a 32 bit kernel from 64 bit grub-xen


From: Jan Beulich
Subject: Re: [Xen-devel] Loading a 32 bit kernel from 64 bit grub-xen
Date: Wed, 02 Jul 2014 09:35:37 +0100

>>> On 01.07.14 at 20:27, <address@hidden> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 7/1/2014 12:18 PM, Andrey Borzenkov wrote:
>> В Tue, 01 Jul 2014 12:06:08 -0400 Phillip Susi <address@hidden>
>> пишет:
>> 
>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>> 
>>> I have been trying to fix grub to load a 32 bit kernel from the
>>> 64 bit xen build.  After fixing up one or two minor issues with
>>> the elf loader, I believe I now have it to the point where it
>>> jumps correctly to the 32 bit kernel and it crashes there, since
>>> it is 32 bit code still executing on a cpu in 64 bit mode.  The
>>> question is how to return the cpu to 32 bit mode *under xen*?
>> 
>> 
>> IIRC it was already discussed not long ago and it seems to be Xen 
>> limitation. You probably need to ask on xen-devel to be sure.
>> 
>> Is it not more simple to use 32 bit grub with 32 bit kernel to
>> start with?
> 
> The problem with that is that you have to know in advance which kernel
> you are going to boot.  That makes configuring virtual hosts harder;
> they just want one grub image they can use to chainload whatever the
> guest wants to install in their domain.
> 
> Also there must be a way to do this otherwise a 64 bit kernel running
> under xen wouldn't be able to execute a 32 bit binary.  I suppose I'll
> Cc xen-devel.

Perhaps there's some confusion about what "kernel" here means:
The thing that's the kernel from GrUB's perspective is the hypervisor,
i.e. xen.gz or xen.efi. While the former expects to be entered in 32-bit
mode, on the Xen side we all agree that this isn't the way things
should work under UEFI; Daniel already proposed how to handle this
case (Xen should be entered in 64-bit mode, with ExitBootServices()
not having got called yet).

The thing that you'd traditionally call kernel (e.g. Linux) can be 32-
or 64-bit irrespective of GrUB's bitness: Xen knows how to load either
(both for Dom0 and, likely irrelevant here, DomU).

Jan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]