[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] About booting Xen with UEFI on FastModel
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. 2. Modify LinuxLoader of EFI to load zImage at 2M aligned address. 3. Use smaller (e.g. 4K) page size in start-of-day page table. > >> But I’m not sure whether there would be other >>>> problems for it to boot Xen. And I’ll continue to work on it until >>>> it can boot Xen successfully at the end. >>> >>> Have fun ;-) >>> >>>> (At least, there are early printk messages on the UART now, :-)) >>> >>>> >>>> Cheers, >>>> >>>> Baozi _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |