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
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
Hi,
On Fri Oct 21, 2011 at 13:44:12 +0400, Vasily Sartakov wrote:
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.
I have some core work lying around for getting this better integrated and may push that out eventually. I still need to gather more experience to see which approach I like to prefer.
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
I think this is already possible. For one, you can do 'make <pkgname>' in the pkg directory do only build all deps of the package and the package itself. When you know what you want to build, you can do 'make S=path1:path2:etc' in pkg/.
Adam
Hi,
I spent a lot of time trying to get specific OMAP3/Beagleboard hardware modules working (EHCI USB mainly). So far, without luck.
A generic "how-to-integrate-linux-drivers-in-l4linux" example would be very helpful. The procedure is not very clear to me (since I'm really new here).
Based on Vasily's work, I changed some sources of linux drivers, to get musb, otg, and usb-ehci compiled without errors. The bootlog compared to Vasily's one [1], is very different; Drivers seems to load, but they don't recognize the hardware (I think).
For example the following boot messages doesn't appear on mine:
omap_register_i2c_bus bus_id=1 nr_ports=3 omap2_i2c_add_bus omap_register_i2c_bus bus_id=3 nr_ports=3 omap2_i2c_add_bus
or
__l4x_ioremap: Mapping physaddr 48200000 [0x1000 Bytes, 48200000+001000] to 04507000+000000 IRQ: Found an INTC at 0x04507000 (revision 4.0) with 96 interrupts
or
twl4030: PIH (irq 7) chaining IRQs 368..375 twl4030: power (irq 373) chaining IRQs 376..383 print_constraints: VUSB1V5: 1500 mV normal standby print_constraints: VUSB1V8: 1800 mV normal standby print_constraints: VUSB3V1: 3100 mV normal standby twl4030_usb twl4030_usb: HW_CONDITIONS 0x90/144; link 1 twl4030_usb twl4030_usb: Initialized TWL4030 USB module omap_i2c omap_i2c.3: bus 3 rev3.12 at 400 kHz Switching to clocksource kip musb-hdrc: version 6.0, pio, peripheral musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 1.400 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory musb-hdrc musb-hdrc: USB Peripheral mode controller at 0450b000 using
and such...
Some of these messages are generated by sources from the mach-omap2 directroy, which AFAIK are not necessary, since changes where not mentioned in Vasily's patch. Do I need to include mach-omap? If yes, how?
Please take a look at my patch (attached below). I did some work, specific for ehci usb Beagleboard support.
What is the correct method for adding those drivers? Any suggestions? Or examples (since Vasily's is not complete for me)...
My configs are in the attachment with the main patch.
Thanks, Giorgio
[1] Vasily's bootlog - http://os.inf.tu-dresden.de/pipermail/l4-hackers/2011/005069.html
l4-hackers@os.inf.tu-dresden.de