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

Re: [Xen-devel] Bare-metal Xen on ARM boot



On 29 April 2013 14:56, Stefano Stabellini
<stefano.stabellini@xxxxxxxxxxxxx> wrote:
> On Mon, 29 Apr 2013, Ian Campbell wrote:
>> On Sun, 2013-04-28 at 15:04 +0100, Stefano Stabellini wrote:
>> > On Fri, 26 Apr 2013, Sander Bogaert wrote:
>> > > >> I was getting the number from xen/arch/arm/traps.c:706 ''call =
>> > > >> arm_hypercall_table[regs->r12].fn;" and the arm_hypercall_table in the
>> > > >> same file. It should have been #4 by that reasoning I know.
>> > > >
>> > > > That macro is such that the fact that something appears at position N 
>> > > > In
>> > > > the list doesn't mean it is position N in the resulting array, it
>> > > > expands into the syntax
>> > > > array[] = {
>> > > >         [1] = a_thing
>> > > >         [4] = another_thing
>> > > > }
>> > > > which initialises slots 1 and 4.
>> > >
>> > > Thanks, I overlooked that.
>> > >
>> > > >>
>> > > >> Also, I was trying an ELF file. I will try again tomorrow with a
>> > > >> zImage header and report back.
>> > > >>
>> > > >> Thanks,
>> > > >> Sander
>> > > >
>> > > >
>> > >
>> > > ELF does seem to be supported but then it gets stuck further down in
>> > > domain builder code ( I also attached the entire output) :
>> > >
>> > > domainbuilder: detail: xc_dom_parse_elf_kernel: xen-3.0-unknown:
>> > > 0x80000000 -> 0x80010010
>> > > xc: error: panic: xc_dom_core.c:608: xc_dom_find_arch_hooks: not found
>> > > (type xen-3.0-unknown): Invalid kernel
>> > > xc: error: panic: xc_dom_core.c:763: xc_dom_mem_init: arch hooks not
>> > > set: Internal error
>> > > libxl: error: libxl_dom.c:384:libxl__build_pv: xc_dom_mem_init failed:
>> > > No such file or directory
>> > >
>> > > The vmlinux binary ( elf ) doesn't boot neither and has the same
>> > > problem. Could it have something to do with:
>> > > "xc: detail: elf_xen_note_check: Not bothering with notes on ARM"
>> > > Missing metadata?
>> > >
>> > > I'll focus on getting an zImage working.
>> >
>> > The problem seems to be that dom->guest_type is set to
>> > "xen-3.0-unknown" by xc_dom_guest_type at the end of
>> > xc_dom_parse_elf_kernel.
>> > In order to match the ARMv7 supported guest_type it should have been
>> > "xen-3.0-armv7l", as you can see from
>> > xc_dom_armzimageloader.c:xc_dom_parse_zimage_kernel.
>> >
>> > Maybe we just need to add the appropriate case in the switch in
>> > xc_dom_guest_type (see below)?
>>
>> We certainly need to add something there, and your string seems as
>> plausible as the next one ;-)
>>
>> I suppose we need to handle EM_AARCH64 at some point too...
>>
>> I reckon a warning print under the default case would have us then and
>> other porters in the future...
>>
>> >
>> > diff --git a/tools/libxc/xc_dom_elfloader.c 
>> > b/tools/libxc/xc_dom_elfloader.c
>> > index 6583859..911f316 100644
>> > --- a/tools/libxc/xc_dom_elfloader.c
>> > +++ b/tools/libxc/xc_dom_elfloader.c
>> > @@ -74,6 +74,8 @@ static char *xc_dom_guest_type(struct xc_dom_image *dom,
>> >          }
>> >      case EM_X86_64:
>> >          return "xen-3.0-x86_64";
>> > +    case EM_ARM:
>> > +        return "xen-3.0-armv7l";
>> >      default:
>> >          return "xen-3.0-unknown";
>> >      }
>
> Sander,
> if you confirm that this change solved your problem, I'll resend as a
> proper patch.

Hi,

This patch got me further in booting the domain but still got stuck. I
was adding extra print's to find out where exactly. Here is the
stacktrace ( attached the whole output too) :

domainbuilder: detail: xc_dom_build_image: called
domainbuilder: detail: xc_dom_alloc_segment:   kernel       :
0x80000000 -> 0x80011000  (pfn 0x80000 + 0x11 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr: pfn 80000 out of range
(0x80000 > 0x2000)
libxl: error: libxl_dom.c:392:libxl__build_pv: xc_dom_build_image
failed: No such file or directory
domainbuilder: detail: xc_dom_release: called
libxl: error: libxl_create.c:908:domcreate_rebuild_done: cannot
(re-)build domain: -3
libxl: debug: libxl_event.c:1569:libxl__ao_complete: ao 0x3aa28: complete, rc=-3
libxl: debug: libxl_create.c:1249:do_domain_create: ao 0x3aa28:
inprogress: poller=0x34880, flags=ic
libxl: debug: libxl_event.c:1541:libxl__ao__destroy: ao 0x3aa28: destroy

It ends up in libxl_dom.c:392:libxl__build_pv: xc_dom_build_image
failed where there is some x86 specific stuff I think.

Thx

Attachment: domload.log
Description: Binary data

_______________________________________________
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®.