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

Re: [Xen-devel] [PATCH v2] xen/tools: Introduce QNX IFS loader



On Thu, Sep 18, 2014 at 10:11 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> Hi Oleksandr,
Hi Julien

>
> On 18/09/14 03:55, Oleksandr Tyshchenko wrote:
>>>
>>> Also, it looks like that with this solution, the QNX image will be tight
>>> to
>>> a specific version of Xen. Indeed, you have to specify the physical
>>> address
>>> in the QNX image.
>>
>>
>> I just specify the starting address in buildfile which shiped with
>> BSP. The starting address is the base address of the image.
>> In our case we have next image attribute:
>> [image=0x80008000]
>
>
> This RAM base address has changed in Xen 4.5. I suspect you are trying this
> patch on top of Xen 4.4, right?
Right.
I know about RAM base address, I keep in mind it.
As I know there are other significant differences between these versions.

>
> If so, it would be nice if you can try this patch also on Xen 4.5.
Sure, I will try.

>
>> This is one of the required actions for QNX to load on top of XEN.
>> Yes, if the rambase addr changes in XEN, I will need to change the
>> image attr in QNX.
>
>
> Is it possible to make QNX position independent?
Unfortunately, I was trying but I couldn't make.

More detailed:
we have base address of the image: [image=0x80008000]
startup_vaddr is based on "base address"
domainbuilder: detail: xc_dom_probe_qnx_ifs: startup_vaddr: 0x800085bc

I dropped base address from IFS buildfile:
domainbuilder: detail: xc_dom_probe_qnx_ifs: startup_vaddr: 0x000005bc
and tried to do next thing:
dom->parms.virt_entry = v_start + startup_hdr->startup_vaddr;
But this didn't work. QNX didn't boot.

Perhaps, the QNX uses this image attribute for his own purposes
(and checks somethings at early stages).
Need to investigate more.

>
> If not, I would add a check that the load address is effectively part of the
> RAM and throw an error if it's not the case.
Yes.
Something like this:

    /* Performs a sanity check for a valid startup entry point */
    if ( (dom->startup_vaddr < v_start) || (dom->startup_vaddr > v_end) )
    {
        xc_dom_printf(dom->xch, "%s: QNX IFS has wrong startup entry
point", __FUNCTION__);
        return -EINVAL;
    }

Are you OK with it?

>
> Regards,
>
> --
> Julien Grall

Thank you

-- 

Oleksandr Tyshchenko | Embedded Dev
GlobalLogic
www.globallogic.com

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