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

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



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.

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