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

Re: [Xen-devel] About booting Xen with UEFI on FastModel



On Tue, 2013-12-17 at 12:52 +0800, Chen Baozi wrote:
> On Dec 11, 2013, at 19:29, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> 
> > On Wed, 2013-12-11 at 19:06 +0800, Chen Baozi wrote:
> >> On Dec 11, 2013, at 18:59, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> >> 
> >>> On Wed, 2013-12-11 at 13:06 +0800, Chen Baozi wrote:
> >>>> Hi Ian,
> >>>> 
> >>>> On Dec 9, 2013, at 23:35, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> >>>> 
> >>>>> On Mon, 2013-12-09 at 23:15 +0800, Chen Baozi wrote:
> >>>>>> Hi all,
> >>>>>> 
> >>>>>> I noticed that upstream UEFI is now supported ARMv8 on FastModel.
> >>>>>> Iâve tried it to boot Linux with it. And it works. But it seems
> >>>>>> it still cannot load Xen hypervisor properly. Iâm now looking for
> >>>>>> the reasons. Is there any difference for a firmware to load Xen
> >>>>>> and Linux kernel?
> >>>>> 
> >>>>> I think you are the first one to try Xen on EFI.
> >>>>> 
> >>>>> Are you using the EFI stub with Linux or are you launching via a
> >>>>> bootloader e.g. Grub-EFI?
> >>>> 
> >>>> After reading the source code, I think it is neither the EFI stub
> >>>> or a bootloader. A Linux Loader EFI application has been developed
> >>>> for ARM in EFI.
> >>> 
> >>> Do you have a link? I'm curious.
> >> 
> >> Instructions to EFI on AArch64:
> >> 
> >> http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ArmPlatformPkg/AArch64
> >> 
> >> And Iâm using the git clone of its svn repository:
> >> 
> >> https://github.com/tianocore/edk2.git
> >> 
> >> Under the tree, the Linux Loader locates at:
> >> 
> >> ArmPkg/Application/LinuxLoader
> > 
> > Ah that, yes I think that boots Linux using the zImage protocol.
> > 
> >>> 
> >>>> It is able to boot Linux either by tagged list or
> >>>> dtb method. However, it hardcoded the start address of 0x80000 
> >>>> when loading Linux kernel, which make it unworkable for Xen after
> >>>> paging is enable.
> > 
> > 0x80000 is a problem due to the alignment not being 2M I think?
> > 
> > Really should look into fixing that. (would probably mean allowing Xen
> > to span 2 consecutive 2MB blocks and some additional fiddling during
> > bring up)
> 
> Yes, it is. I hacked EFI to make it boot Xen with a 2M aligned address.
> And it seems to be OK.
> 
> But Iâm afraid it is not simply allowing Xen to span 2 consecutive 2MB
> blocks, for it cannot deal with the different offsets within the page
> ( 0x80080000 % 2M != 0x80200000 % 2M). 
> 
> IMHO, there might be 3 ways to solve this problem:
> 
> 1. If Xen bootstrap code detected it at an address not aligned with
> 2MB, then it copies itself to (x19 + 4M)\2M.

This runs the risk of overwriting one of the other boot modules or
something we need later and would have to happen before we had parsed
the DTB to find out where those things are.

We could mandate that there is space between the end of Xen and other
stuff, but then we could probably just fix the load address too.

> 2. Modify LinuxLoader of EFI to load zImage at 2M aligned address.

It's not impossible that we will end up with a XenLoader EFI anyway.

> 3. Use smaller (e.g. 4K) page size in start-of-day page table.

This should work.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.