|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 16/17] libxl: build a device tree for ARM guests
On Tue, 2013-11-12 at 19:59 +0000, Julien Grall wrote:
>
> On 11/12/2013 05:39 PM, Ian Campbell wrote:
> > Uses xc_dom_devicetree_mem which was just added. The call to this needs to
> > be
> > carefully sequenced to be after xc_dom_parse_image (so we can tell which
> > kind
> > of guest we are building, although we don't use this yet) and before
> > xc_dom_mem_init which tries to decide where to place the FDT in guest RAM.
> >
> > Removes libxl_noarch which would only have been used by IA64 after this
> > change. Remove IA64 as part of this patch.
> >
> > There is no attempt to expose this as a configuration setting for the user.
> >
> > Includes a debug hook to dump the dtb to a file for inspection.
> >
> > TODO:
> > - v7 CPU compat is hardcoded to cortex-a15 -- may need to define something
> > more
> > generic via mach-virt dt bindngs?
> >
> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> > ---
> > v4: Drop spurious comment in header
> > s/__be32/be32/ and s/gic_interrupt_t/gic_interrupt/ to avoid reserved
> > names
> > Coding style fixes
> > Use GCSPRINTF
> > use for(;;) around FDT creation loop, undef FDT when done
> > use libxl__realloc for fdt size increase
> > Refactor debug dump into its own function, remove NDEBUG ifdef
> > v2: base addresses, irq, evtchn etc stuff is now from public API headers,
> > avoiding the need to introduce domctls etc until we want to make them
> > dynamic.
> > fix memory node
> > Improve libfdt error handling, especially for FDT_ERR_NOSPACE.
> > Derive guest CPU and timer compatiblity nodes from the guest type.
> > ---
> > tools/libxl/Makefile | 6 +-
> > tools/libxl/libxl_arch.h | 3 +
> > tools/libxl/libxl_arm.c | 516
> > ++++++++++++++++++++++++++++++++++++++++++++
> > tools/libxl/libxl_dom.c | 4 +
> > tools/libxl/libxl_noarch.c | 8 -
> > tools/libxl/libxl_x86.c | 7 +
> > 6 files changed, 534 insertions(+), 10 deletions(-)
> > create mode 100644 tools/libxl/libxl_arm.c
> > delete mode 100644 tools/libxl/libxl_noarch.c
>
> [..]
>
> > diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c
> > new file mode 100644
> > index 0000000..9fe9a81
> > --- /dev/null
> > +++ b/tools/libxl/libxl_arm.c
> > @@ -0,0 +1,516 @@
> > +#include "libxl_internal.h"
> > +#include "libxl_arch.h"
> > +
> > +#include <xc_dom.h>
> > +#include <libfdt.h>
> > +#include <assert.h>
> > +
> > +int libxl__arch_domain_create(libxl__gc *gc, libxl_domain_config *d_config,
> > + uint32_t domid)
> > +{
> > + return 0;
> > +}
> > +
> > +static struct arch_info {
> > + const char *guest_type;
> > + const char *timer_compat;
> > + const char *cpu_compat;
> > +} arch_info[] = {
> > + {"xen-3.0-armv7l", "arm,armv7-timer", "arm,cortex-a15" },
>
> What about "arm,armv7" instead arm,cortex-a15? It's more accurate as
> it's possible to boot Xen on cortex-a7 core.
I don't think that is a defined compat string though.
I think this probably needs resolving either by extending the mach-virt
"spec" to cover a common generic CPU type or by somehow exposing the
physical CPU compatibility string to the tools.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |