Mailing List Archive

Question about DTB in Mini-OS on ARM
Hi Ian,

I've turned to arm32 porting of Mini-OS as you suggested. Right now, I've
finished most of entry header, which setups an initial page table, saves
DTB pointer (from r2 which arm booting protocol defines), setups the stack
before jumping to start_kernel, and includes the exception's entry.

At this stage, I could get the DTB's address in arch_init(), parse it and
translate it to fill start_info structure Mini-OS used. In order to
implement this logic, I was seeking and reading DTB's related codes of
arm guest creation and found that the DTB used in domU in arm is thought
to be appended with the guest kernel:

/*
* ATAGS/DTB: We currently require that the guest kernel to be
* using CONFIG_ARM_APPENDED_DTB. Ensure that r2 does not look
* like a valid pointer to a set of ATAGS or a DTB.
*/

In this case, I cannot get the DTB's phys address to fill start_info from
r2 currently. Does it means we need to wrap the mini-os kernel together with
a DTB?

Any ideas?

Thanks.

Baozi

_______________________________________________
Xen-arm mailing list
Xen-arm@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm
Re: Question about DTB in Mini-OS on ARM [ In reply to ]
On Tue, 2013-06-04 at 11:24 +0800, Chen Baozi wrote:
> Hi Ian,
>
> I've turned to arm32 porting of Mini-OS as you suggested. Right now, I've
> finished most of entry header, which setups an initial page table, saves
> DTB pointer (from r2 which arm booting protocol defines), setups the stack
> before jumping to start_kernel, and includes the exception's entry.

Awesome!

> At this stage, I could get the DTB's address in arch_init(), parse it and
> translate it to fill start_info structure Mini-OS used. In order to
> implement this logic, I was seeking and reading DTB's related codes of
> arm guest creation and found that the DTB used in domU in arm is thought
> to be appended with the guest kernel:
>
> /*
> * ATAGS/DTB: We currently require that the guest kernel to be
> * using CONFIG_ARM_APPENDED_DTB. Ensure that r2 does not look
> * like a valid pointer to a set of ATAGS or a DTB.
> */
>
> In this case, I cannot get the DTB's phys address to fill start_info from
> r2 currently. Does it means we need to wrap the mini-os kernel together with
> a DTB?

At the moment yes, this is because we have not yet implemented support
in the toolstack for generating (or even accepting a pregenerated
binary) a DTB. This is
http://wiki.xen.org/wiki/Xen_ARM_TODO#Autogenerate_DomU.27s_device_trees.

Assuming you don't want to tackle that head on (if you do please let me
know!) then the best short term solution is probably to either implement
some variant of the APPENDED_DTB strategy or to simply link a DTB into
your mini-os kernel.

Ian.



_______________________________________________
Xen-arm mailing list
Xen-arm@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm