Aitor Viana wrote:
> I am new in Xenomai issues. I would like to begin porting Xenomai to the
> LEON2 architecture (sparcv8) but I don't know how to begin from. Is
> there any documentation or so explaining how to port xenomai to support
> another architecture?


There is no cookbook for that, so here are a few hints:

- porting Xenomai to a new Linux architecture means porting Adeos/I-pipe first;
it's a reasonably thin layer patched into the Linux kernel. You may want to read
that document to understand why we need it:
http://www.xenomai.org/documentation/branches/v2.3.x/pdf/Life-with-Adeos-rev-B.pdf.
If you want to host Xenomai on bare metal, without Linux underneath, then you
don't need to port Adeos. You only need to start from the next step.

- finally, you need to interface the system and hardware abstraction layers
Xenomai exposes to your environment. Those layers are made of the xnarch_* and
rthal_* routines available from include/asm-* and ksrc/arch/*. You will need to
find out how to do that by looking at an existing port. I usually recommend to
start with the powerpc/ port (include/asm-powerpc). Depending on whether you
interface Xenomai to Linux or not, some of those layers may interact with the
Linux kernel API, or provide the required services on their own (if the latter
applies, see the simulator port in include/asm-sim as an illustration of how to
simulate the hw system on top of purely software components, e.g. event-driven
engine + glibc -- there we don't hook to any kernel interface).

arch-dependent code is exclusively kept under the include/asm-* and ksrc/arch/*
subdirs. No need to look elsewhere.

Last hint, as a typical porting sequence:
- port Adeos (if needed)
- port the arch-dep layers
- make a simple kernel-based Xenomai thread run (see xnpod_init_thread(),
xnpod_start_thread()).
- validate with the klatency test.
- start measuring the typical jitter, and chase long latency spots if any, using
the Adeos tracer (CONFIG_IPIPE_TRACER). The Xenomai website has some hints about
it. Make sure to fix pathological latencies at _this_ stage and _not_ later; it
will allow you to point the finger at user-space support (the next step) for
later latency issues, when you introduce it (and this stuff is prone to create
jittery during the early stages of a port, due to interactions with the regular
Linux kernel).
- make a simple user-space Xenomai thread run (if Linux is underneath). You will
need to have a look at include/asm-*/syscall.h.
- validate with the latency test (i.e. $ ./latency -t0).

> 
> Thanks a lot in advanced.
> 
> Aitor
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@gna.org
> https://mail.gna.org/listinfo/xenomai-core


-- 
Philippe.

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to