By way of introduction, I am one of the LinuxCNC developers, but
pretty new to kernel patching.

Let me first say that what I am trying to do is something I knew would
be difficult.

I am trying to build a Xenomai kernel for the Udoo board. I have
compiled and run the kernel from the Udoo github repository (3.0.35) ,
and I have compiled a  Xenomai kernel based on the tagged archive on
the Freescale archive (3.0.43, if I recall correctly) recommended in
the Xenomai README. This did not
boot the Udoo.

I have been trying to combine the two together.

The xenomai patch for the arm/mxc patch is actually in three parts,
there is a pre-patch which seems to put the kernel in a state where
the main patch can take, and a post patch to put things back as they
were before compilation.

With a bit of hand-fettling I made the pre-patch take, and then the
main xenomai patch took cleanly. I then had to hand-apply a few bits
of the post patch, and then tried to compile.

I think that I am close to a compilable situation, but there are a
couple of persistent compile errors that I simply can't squash.

 CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `fec_enet_init':
bufp.c:(.text.unlikely+0x209c): undefined reference to `dma_alloc_noncacheable'
sound/built-in.o: In function `imx_pcm_preallocate_dma_buffer.constprop.8':
last.c:(.text+0x37320): undefined reference to `dma_alloc_writethrough'
last.c:(.text+0x37370): undefined reference to `dma_alloc_writethrough'
sound/built-in.o: In function `imx_soc_platform_probe':
last.c:(.devinit.text+0x528): undefined reference to `dma_alloc_noncacheable'
make: *** [.tmp_vmlinux1] Error 1

Note that bufp.c is symlinked out of the kernel tree into the xenomai
tree. (by the xeno patch) and does not contain a fec_enet_init
function, nor a call to dma_alloc_noncacheable.
fec_enet_init exists in drivers/net/fec.c and does have a call to
dma_alloc_noncacheable, but also #includes dma-mapping.h. (though
dma_alloc_noncacheable is actually in
arch/arm/include/asm/dma-mapping.h which is conditionally #included in
<linux/dma-mapping.h>

I am pretty sure that there really isn't any function anywhere called
"`imx_pcm_preallocate_dma_buffer.constprop.8"

I wonder if anyone can point me in the right direction? Help
interpreting the error codes would be a start, for example which code
"bufp.c:(.text.unlikely+0x209c):" is really pointing at.


--
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

-- 
atp

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to