On Fri, Oct 21, 2011 at 01:44:12PM +0400, Vasily Sartakov wrote:
Hello. I would like to discuss with you platforms supported in l4linux. l4linux good working on "vanilla" arm platform, but when we try to use a board specific devices - for example USB, we have some problem with full device support in sources. For example, USB gadget need musb, witch need twl4030, which need i2c, which need clock and power domain initialisation, and all of this part placed in arch/arm/omap. In next mail attachment you can find the our kernel, which support usb on Overo Gumstix platform. We copied sources from arch/arm/omap to arch/l4/kernel/arch-arm/ and made it work. Most of them serious changed, but we tried to save structure. I don't thing what its good solution, but it real working and someone who ask USB support on arm can use it. So, what you think about full board/platform supporting? any idea? Can this solution may be pushed to SVN? I understand that this code should be more clear, and I think it would be better if he would be on the Internet. Incidentally, this is the second version, we have previously done this for kernel 2.6.xx, and it is very difficult to keep a local copy and make regular merge. The other thing which i would like discuss is configuration management for l4re build. With a time, count of a package will be increased, and, like now, the compiling of l4re take a long time. Do you plan in this direction some work? For example, you could make small configuration files for compiling only requirements, similar to Control
-- Sartakov A. Vasily
Hi,
I'm afraid that this may not be an answer to your email but it is nice to see that someone is working on this issue, since I'm desperately trying to get USB working on my beagleboard.
At this point I have to thank you.Your patch might help me, maybe I can adapt those changes to get the EHCI USB port working, too.
But before this, I have some trouble applying your patches.
During the build process of l4linux, make throws those errors:
drivers/built-in.o: In function `musb_write_fifo': /home/wicklein/tests/target_beagleboard/l4re-snapshot-2011081207/src/l4linux/drivers/usb/musb/musb_core.c:249: undefined reference to `__raw_writesb' drivers/built-in.o: In function `musb_read_fifo': /home/wicklein/tests/target_beagleboard/l4re-snapshot-2011081207/src/l4linux/drivers/usb/musb/musb_core.c:289: undefined reference to `__raw_readsb' drivers/built-in.o: In function `omap_i2c_init': /home/wicklein/tests/target_beagleboard/l4re-snapshot-2011081207/src/l4linux/drivers/i2c/busses/i2c-omap.c:434: undefined reference to `clk_get_rate' make[2]: *** [.tmp_vmlinux1] Error 1 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2
The steps I did: - copy arch/arm/plat-omap folder to arch/l4/kernel/arch-arm/ - patched the sources with your patch - # make O=/path/to/l4linux/builddir L4ARCH=arm CROSS_COMPILE=arm-linux- arm_usb_defconfig (where arm_usb_defconfig your usb config file is) - # cd builddid - # make L4ARCH=arm CROSS_COMPILE=arm-linux- menuconfig - # make L4ARCH=arm CROSS_COMPILE=arm-linux- -j4 (which of course is the standard procedure)
Did I miss something? I hope you can help me.
By the way, I noticed that with your usb_config file the CONFIG_L4_PLAT_OVERO is not kept, because it just gets deleted during make call (kconfig checks etc...), so I solved this by adding :
config L4_PLAT_OVERO bool "Set CONFIG_L4_PLAT_OVERO" help Defines CONFIG_L$_PLAT_OVERO=y.
to the Kconfig file in arch/l4/. In this way, CONFIG_L4_PLAT_OVERO is kept in the .config file.
Thanks for your time, Giorgio