got a working usb-host via OTGi will try to make a working EHCI, stay tuned 2011/11/15 giowck giowckln@googlemail.com:
Hi,
thank you a lot!
I will check this soon.
Am 15.11.2011 11:15, schrieb Sartakov A. Vasily:
Hallo This is a steps for get USB-otg work:
- get svn' l4linux, l4re
- cd l4linux directory apply patches:
patch -p1<drivers.diff patch -p1<arch.diff 3. make setup 4. change .config on usb_config, add in it valid CONFIG_L4_OBJ_TREE 5. make L4ARCH=arm menuconfig, 6. ordinary l4 build 7. put arm-omap3.devs in obj/l4/arm/arm-beagleboard/bin/arm_armv6/l4f 8. add: entry l4l_1 kernel fiasco -serial_esc roottask moe rom/l4l_1.cfg module l4re module ned module l4l_1.cfg module arm-omap3.devs module gumstix-fb-l4l.io module io module vmlinuz.arm module ramdisk-arm.rd
in src/l4/conf/modules.list 9. put l4l_1.cfg and gumstix-fb-l4l.io in src/l4/conf/examples 10. make uimage and choose l4l_1
Then you got around 8mb uImage, witch can boot. After that you will have BB platform sources in arch/l4/kernel/arch-arm, so, if you interesting in USB-host You should edit it I will try to do it too in nearest future, cos me need a sd/mmc and USB-host too. Btw, in our configs, all platform resources (mem io, irq) placed in single gumstix-fb-l4l.io and arm-omap3.devs cleared, it's important. if you have a same resources in both files, most of them will not work
Hit any key to stop autoboot: 0 reading l4img
8286416 bytes read ## Booting kernel from Legacy Image at 80000000 ... Image Name: L4 Image #8 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 8286352 Bytes = 7.9 MiB Load Address: 81000000 Entry Point: 81000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
L4 Bootstrapper Build: #8 Tue Nov 15 10:30:07 CET 2011, 4.4.1 Scanning up to 128 MB RAM Memory size is 128MB (80000000 - 88000000) RAM: 0000000080000000 - 0000000087ffffff: 131072kB Total RAM: 128MB mod10: 814e7000-817e7000: ramdisk-arm.rd mod09: 81204000-814e60a0: vmlinuz.arm mod08: 8111e000-81203074: io mod07: 8111d000-8111d97f: gumstix-fb-l4l.io mod06: 8111c000-8111c103: arm-omap3.devs mod05: 8111b000-8111b302: l4l_1.cfg mod04: 810c5000-8111a670: ned mod03: 810aa000-810c439c: l4re mod02: 8106f000-810a9b50: moe mod01: 81065000-8106e70c: sigma0 mod00: 81015000-81064ef4: fiasco Moving 11 modules to 81100000 with offset eb000 moving module 11 { 814e7000-817e7000 } -> { 815d2000-818d2000 } moving module 10 { 81204000-814e60a0 } -> { 812ef000-815d10a0 } moving module 09 { 8111e000-81203074 } -> { 81209000-812ee074 } moving module 08 { 8111d000-8111d97f } -> { 81208000-8120897f } moving module 07 { 8111c000-8111c103 } -> { 81207000-81207103 } moving module 06 { 8111b000-8111b302 } -> { 81206000-81206302 } moving module 05 { 810c5000-8111a670 } -> { 811b0000-81205670 } moving module 04 { 810aa000-810c439c } -> { 81195000-811af39c } moving module 03 { 8106f000-810a9b50 } -> { 8115a000-81194b50 } moving module 02 { 81065000-8106e70c } -> { 81150000-8115970c } moving module 01 { 81015000-81064ef4 } -> { 81100000-8114fef4 } Scanning fiasco -serial_esc Scanning sigma0 Scanning moe rom/l4l_1.cfg Relocated mbi to [0x8100f000-0x8100f186] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x80002000 Regions of list regions [ 80001000, 800019ff] { a00} Kern fiasco [ 80002000, 80061fff] { 60000} Kern fiasco [ 80090000, 800969bf] { 69c0} Sigma0 sigma0 [ 80098000, 8009e17b] { 617c} Sigma0 sigma0 [ 80140000, 80176183] { 36184} Root moe [ 80178000, 8018ed0f] { 16d10} Root moe [ 81000000, 810143eb] { 143ec} Boot bootstrap [ 8100f000, 8100f283] { 284} Root Multiboot info [ 81195000, 818d1fff] { 73d000} Root Modules Memory API Version: (87) experimental Sigma0 config ip:800900e0 sp:81013704 Roottask config ip:801401c0 sp:00000000 Starting kernel fiasco at 80001000 Hello from Startup::stage2 Initialize page table Vmem_alloc::init() Cache config: ON ID_PFR0: 00001031 ID_PFR1: 00000011 ID_DFR0: 00010400 ID_AFR0: 00000000 ID_MMFR0: 31100003 ID_MMFR1: 20000000 ID_MMFR2: 01202000 ID_MMFR3: 00000011 FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 1, v: c, i: 41, t: hard, p: dbl/sngl SERIAL ESC: allocated IRQ 74 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2011 TU Dresden Rev: r38 compiled with gcc 4.4.1 for Beagleboard [] Build: #2 Tue Nov 15 09:44:12 CET 2011
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:80000000;80000fff] [0:80062000;8008ffff] [0:80097000;80097fff] [0:8009f000;8013ffff] [4:80140000;80176fff] [0:80177000;80177fff] [4:80178000;8018efff] [0:8018f000;8100efff] [4:8100f000;8100ffff] [0:81010000;81194fff] [4:81195000;818d1fff] [0:818d2000;86ffffff] IOMEM:---------------------- [0:0;7fffffff] [0:88000000;ffffffff] MOE: Hello world MOE: found 106516 KByte free memory MOE: found RAM from 80000000 to 87000000 MOE: allocated 112 KByte for the page array @0x80062000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:501000] BOOTFS: [81195000-811af39c] [C:503000] l4re BOOTFS: [811b0000-81205670] [C:504000] ned BOOTFS: [81206000-81206302] [C:505000] l4l_1.cfg BOOTFS: [81207000-81207103] [C:506000] arm-omap3.devs BOOTFS: [81208000-8120897f] [C:507000] gumstix-fb-l4l.io BOOTFS: [81209000-812ee074] [C:508000] io BOOTFS: [812ef000-815d10a0] [C:509000] vmlinuz.arm BOOTFS: [815d2000-818d2000] [C:50a000] ramdisk-arm.rd MOE: cmdline: moe rom/l4l_1.cfg MOE: Starting: rom/ned rom/l4l_1.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4l_1.cfg' IO | Io service IO | WARNING: device 'plat' already assigned to an other virtual bus. IO | WARNING: device 'prcm3' already assigned to an other virtual bus. IO | WARNING: device 'prcm2' already assigned to an other virtual bus. IO | WARNING: device 'sys' already assigned to an other virtual bus. IO | WARNING: device 'i2c1' already assigned to an other virtual bus. IO | WARNING: device 'gpio' already assigned to an other virtual bus. IO | Ready. Waiting for request. l4linux | PH 0 (t: 1) offs=00008000 vaddr=00100000 vend=004492ec l4linux | phys=00100000 ephys=004492ec l4linux | f_sz=002c83cc memsz=003492ec flgs=rwx l4linux | PH 1 (t: 4) offs=002d03a8 vaddr=003c83a8 vend=003c83cc l4linux | phys=003c83a8 ephys=003c83cc l4linux | f_sz=00000024 memsz=00000024 flgs=r-x l4linux | PH 2 (t: 1685382481) offs=00000000 vaddr=00000000 vend=00000000 l4linux | phys=00000000 ephys=00000000 l4linux | f_sz=00000000 memsz=00000000 flgs=rwx l4linux | Starting binary at 0x11e2f8, argc=9 argv=0x80007f84 *argv=0xb1007ff0 argv0=rom/vmlinuz.arm l4linux | External resolver is at 0xa80006a0 l4linux | ======> L4Linux 2.6 starting...<======== l4linux | Linux version 3.0.0-l4-svn23 (jdoe@ubuntu) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Tue Nov 15 09:54:29 CET 2011 l4linux | Binary name: rom/vmlinuz.arm l4linux | This is an AEABI build. l4linux | Linux kernel command line (8 args): mem=64M console=ttyLv0 l4x_rd=rom/vHSM.rd root=1:0 rw ramdisk_size=20480 init=/linuxrc debug l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00100000 - 00500000 [4096 KiB]. l4linux | Areas: Text: 00100000 - 003a8000 [2720kB] (a bit longer) l4linux | Data: 003a8000 - 003c38a0 [110kB] l4linux | Initdata: 00100000 - 0011d000 [116kB] l4linux | BSS: 003c83cc - 004492ec [515kB] l4linux | l4lx_thread_create: Created thread 415 (tamer0) (u:b3000400, sp:003cc288) l4linux | Tamer0 is 415 l4linux | Using tamed mode. l4linux | Device scan: l4linux | Device: System Control l4linux | MEM: 48002000 - 480047ff l4linux | MEM: 48004800 - 4800ffff l4linux | Device: i2c l4linux | MEM: 48070000 - 48070fff l4linux | Device: prcm2 l4linux | MEM: 48060000 - 4806007f l4linux | MEM: 48072000 - 4807207f l4linux | MEM: 480ab000 - 480acfff l4linux | MEM: 48200000 - 4820ffff l4linux | MEM: 48306800 - 48309fff l4linux | MEM: 4830a000 - 4830ffff l4linux | MEM: 6c000000 - 6cffffff l4linux | MEM: 6d000000 - 6dffffff l4linux | IRQ: 00000038 - 00000038 l4linux | IRQ: 0000003d - 0000003d l4linux | IRQ: 00000039 - 00000039 l4linux | IRQ: 00000007 - 00000007 l4linux | IRQ: 0000005c - 0000005c l4linux | Device: plat l4linux | IRQ: 0000004d - 0000004d l4linux | l4lx_thread_create: Created thread 417 (cpu0) (u:b3000600, sp:003a9ff0) l4linux | main thread will be 417 l4linux | l4x_register_pointer_section: addr = 00100000 size = 3448832 l4linux | section-with-init: virt: 0x100000 to 0x4492eb [3364 KiB] l4linux | section-with-init: Phys: 0x8034d000 to 0x806962ec, Size: 3445484 l4linux | l4x_linux_startup: thread 417. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007ef4 l4linux | Main memory size: 64MB l4linux | Main memory: virt: 0x500000 to 0x44fffff [65536 KiB] l4linux | Main memory: Phys: 0x81900000 to 0x85900000, Size: 67108864 l4linux | Filling lower ptabs... l4linux | Done (436 entries). l4linux | l4x_register_pointer_section: addr = 004ff000 size = 4096 l4linux | end: virt: 0x4ff000 to 0x4fffff [4 KiB] l4linux | end: Phys: 0x80698000 to 0x80699000, Size: 4096 l4linux | l4x_rd_path: rom/vHSM.rd l4linux | Loading: rom/vHSM.rd l4linux | Failed to query name 'rom/vHSM.rd': No such object found(-2) l4linux | Failed to get initrd: No such object found(-2) l4linux | Couldn't load ramdisk :( l4linux | l4lx_thread_create: Created thread 41c (IRQ CPU0) (u:b3000800, sp:003e3ff0) Linux version 3.0.0-l4-svn23 (jdoe@ubuntu) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Tue Nov 15 09:54:29 CET 2011 CPU: Fiasco [860f0001] revision 1 (ARMvundefined/unknown), cr=00000000 CPU: unknown data cache, unknown instruction cache cpu_v6_proc_init Machine: L4 Memory policy: ECC disabled, Data cache writeback _CACHE_flush_kern_cache_all() On node 0 totalpages: 17409 free_area_init_node: node 0, pgdat 003c2f44, node_mem_map 00500000 DMA zone: 138 pages used for memmap DMA zone: 0 pages reserved DMA zone: 17271 pages, LIFO batch:3 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 17271 Kernel command line: mem=64M console=ttyLv0 l4x_rd=rom/vHSM.rd root=1:0 rw ramdisk_size=20480 init=/linuxrc debug PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 0MB 68MB = 68MB total Memory: 64808k/64808k available, 4828k reserved, 0K highmem Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xffc00000 - 0xffe00000 ( 2 MB) vmalloc : 0x04600000 - 0x0c600000 ( 128 MB) lowmem : 0x00000000 - 0x04500000 ( 69 MB) modules : 0xff100000 - 0x00100000 ( 16 MB) .init : 0x00100000 - 0x0011d000 ( 116 kB) .text : 0x0011e000 - 0x003a6e5c (2596 kB) .data : 0x003a8000 - 0x003c38a0 ( 111 kB) .bss : 0x003c83cc - 0x004492ec ( 516 kB) NR_IRQS:395 nr_irqs:395 395 l4lx_irq_init: creating IRQ thread on cpu 0 Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... irq_thread: Starting IRQ thread on CPU 0 496.43 BogoMIPS (lpj=2482176) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok print_constraints: dummy: NET: Registered protocol family 16 __l4x_ioremap: Mapping physaddr 48002000 [0x1000 Bytes, 48002000+001000] to 04500000+000000 __l4x_ioremap: Mapping physaddr 48306800 [0x2000 Bytes, 48306000+003000] to 04501000+000800 __l4x_ioremap: Mapping physaddr 48004800 [0x2000 Bytes, 48004000+003000] to 04504000+000800 _CACHE_flush_kern_cache_all() __l4x_ioremap: Mapping physaddr 48200000 [0x1000 Bytes, 48200000+001000] to 04507000+000000 IRQ: Found an INTC at 0x04507000 (revision 4.0) with 96 interrupts Total of 96 interrupts on 1 active controller omap3xxx_powerdomains_init recalculate_root_clocks Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz ERROR: IO-memory (68000000+ffff) not available omap_hwmod: l3_main: Could not ioremap omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l3_main omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_core omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_per omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_wkup __l4x_ioremap: Mapping physaddr 48070000 [0x7f Bytes, 48070000+001000] to 04508000+000000 __l4x_ioremap: Mapping physaddr 48072000 [0x7f Bytes, 48072000+001000] to 04509000+000000 __l4x_ioremap: Mapping physaddr 48060000 [0x7f Bytes, 48060000+001000] to 0450a000+000000 __l4x_ioremap: Mapping physaddr 480ab000 [0xfff Bytes, 480ab000+001000] to 0450b000+000000 omap_hwmod: i2c1: softreset failed (waited 10000 usec) omap_hwmod: i2c2: softreset failed (waited 10000 usec) omap_hwmod: i2c3: softreset failed (waited 10000 usec) omap2_common_pm_init Added static device 'System Control' with 2 resources. Added static device 'i2c' with 1 resources. Added static device 'prcm2' with 13 resources. 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 omap_init_opp_table: no hwmod or odev for iva, [9] cannot add OPPs. overo_opp_init: opp default init failed
============ ICLKEN_CORE 7ffffedb ICLKEN_CORE 7ffffedb FCLKEN_CORE 43fffe01 FCLKEN_CORE c3fffe01 CTRL i2c 1 11c0118 CTRL i2c 2 118011c CTRL i2c 3 1c0118 bio: create slab<bio-0> at 0 Failed to create "l4x" debugfs directory: 1 omap_i2c omap_i2c.1: bus 1 rev3.12 at 2600 kHz l4linux | cpu0: utcb=0xb3000600 417 l4linux | l4lx_thread_create: Created thread 41f (idler0) (u:b3000a00, sp:003e5ff4) 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 PIO, IRQ 92 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 NetWinder Floating Point Emulator V0.97 (double precision) msgmni has been set to 126 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver ttyLv0 at MMIO 0x1 (irq = 385) is a L4 L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC 4a:57:0a:8c:6d:1c usb0: HOST MAC 2a:99:fb:8b:c0:d3 g_ether gadget: adding config #2 'RNDIS'/003bf038 g_ether gadget: adding 'rndis'/0414cd60 to config 'RNDIS'/003bf038 rndis_register: configNr = 0 rndis_set_param_medium: 0 0 g_ether gadget: RNDIS: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in g_ether gadget: cfg 2/003bf038 speeds: high full g_ether gadget: interface 0 = rndis/0414cd60 g_ether gadget: interface 1 = rndis/0414cd60 g_ether gadget: adding config #1 'CDC Ethernet (ECM)'/003bef9c g_ether gadget: adding 'cdc_ethernet'/0414cca0 to config 'CDC Ethernet (ECM)'/003bef9c g_ether gadget: CDC Ethernet: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in g_ether gadget: cfg 1/003bef9c speeds: high full g_ether gadget: interface 0 = cdc_ethernet/0414cca0 g_ether gadget: interface 1 = cdc_ethernet/0414cca0 g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready mousedev: PS/2 mouse device common for all mice i2c /dev entries driver TCP cubic registered NET: Registered protocol family 17 omap2_common_pm_late_init
2011/11/2 Giorgio Wickleingiowckln@googlemail.com:
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 mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
So.. usb host via ehci uses dma and i have problem in pool_alloc_page(mm/dmapool.c): dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc returns 0 too. any idea?
2011/11/17 Sartakov A. Vasily sartakov@ksyslabs.org:
got a working usb-host via OTGi will try to make a working EHCI, stay tuned 2011/11/15 giowck giowckln@googlemail.com:
Hi,
thank you a lot!
I will check this soon.
Am 15.11.2011 11:15, schrieb Sartakov A. Vasily:
Hallo This is a steps for get USB-otg work:
- get svn' l4linux, l4re
- cd l4linux directory apply patches:
patch -p1<drivers.diff patch -p1<arch.diff 3. make setup 4. change .config on usb_config, add in it valid CONFIG_L4_OBJ_TREE 5. make L4ARCH=arm menuconfig, 6. ordinary l4 build 7. put arm-omap3.devs in obj/l4/arm/arm-beagleboard/bin/arm_armv6/l4f 8. add: entry l4l_1 kernel fiasco -serial_esc roottask moe rom/l4l_1.cfg module l4re module ned module l4l_1.cfg module arm-omap3.devs module gumstix-fb-l4l.io module io module vmlinuz.arm module ramdisk-arm.rd
in src/l4/conf/modules.list 9. put l4l_1.cfg and gumstix-fb-l4l.io in src/l4/conf/examples 10. make uimage and choose l4l_1
Then you got around 8mb uImage, witch can boot. After that you will have BB platform sources in arch/l4/kernel/arch-arm, so, if you interesting in USB-host You should edit it I will try to do it too in nearest future, cos me need a sd/mmc and USB-host too. Btw, in our configs, all platform resources (mem io, irq) placed in single gumstix-fb-l4l.io and arm-omap3.devs cleared, it's important. if you have a same resources in both files, most of them will not work
Hit any key to stop autoboot: 0 reading l4img
8286416 bytes read ## Booting kernel from Legacy Image at 80000000 ... Image Name: L4 Image #8 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 8286352 Bytes = 7.9 MiB Load Address: 81000000 Entry Point: 81000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
L4 Bootstrapper Build: #8 Tue Nov 15 10:30:07 CET 2011, 4.4.1 Scanning up to 128 MB RAM Memory size is 128MB (80000000 - 88000000) RAM: 0000000080000000 - 0000000087ffffff: 131072kB Total RAM: 128MB mod10: 814e7000-817e7000: ramdisk-arm.rd mod09: 81204000-814e60a0: vmlinuz.arm mod08: 8111e000-81203074: io mod07: 8111d000-8111d97f: gumstix-fb-l4l.io mod06: 8111c000-8111c103: arm-omap3.devs mod05: 8111b000-8111b302: l4l_1.cfg mod04: 810c5000-8111a670: ned mod03: 810aa000-810c439c: l4re mod02: 8106f000-810a9b50: moe mod01: 81065000-8106e70c: sigma0 mod00: 81015000-81064ef4: fiasco Moving 11 modules to 81100000 with offset eb000 moving module 11 { 814e7000-817e7000 } -> { 815d2000-818d2000 } moving module 10 { 81204000-814e60a0 } -> { 812ef000-815d10a0 } moving module 09 { 8111e000-81203074 } -> { 81209000-812ee074 } moving module 08 { 8111d000-8111d97f } -> { 81208000-8120897f } moving module 07 { 8111c000-8111c103 } -> { 81207000-81207103 } moving module 06 { 8111b000-8111b302 } -> { 81206000-81206302 } moving module 05 { 810c5000-8111a670 } -> { 811b0000-81205670 } moving module 04 { 810aa000-810c439c } -> { 81195000-811af39c } moving module 03 { 8106f000-810a9b50 } -> { 8115a000-81194b50 } moving module 02 { 81065000-8106e70c } -> { 81150000-8115970c } moving module 01 { 81015000-81064ef4 } -> { 81100000-8114fef4 } Scanning fiasco -serial_esc Scanning sigma0 Scanning moe rom/l4l_1.cfg Relocated mbi to [0x8100f000-0x8100f186] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x80002000 Regions of list regions [ 80001000, 800019ff] { a00} Kern fiasco [ 80002000, 80061fff] { 60000} Kern fiasco [ 80090000, 800969bf] { 69c0} Sigma0 sigma0 [ 80098000, 8009e17b] { 617c} Sigma0 sigma0 [ 80140000, 80176183] { 36184} Root moe [ 80178000, 8018ed0f] { 16d10} Root moe [ 81000000, 810143eb] { 143ec} Boot bootstrap [ 8100f000, 8100f283] { 284} Root Multiboot info [ 81195000, 818d1fff] { 73d000} Root Modules Memory API Version: (87) experimental Sigma0 config ip:800900e0 sp:81013704 Roottask config ip:801401c0 sp:00000000 Starting kernel fiasco at 80001000 Hello from Startup::stage2 Initialize page table Vmem_alloc::init() Cache config: ON ID_PFR0: 00001031 ID_PFR1: 00000011 ID_DFR0: 00010400 ID_AFR0: 00000000 ID_MMFR0: 31100003 ID_MMFR1: 20000000 ID_MMFR2: 01202000 ID_MMFR3: 00000011 FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 1, v: c, i: 41, t: hard, p: dbl/sngl SERIAL ESC: allocated IRQ 74 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2011 TU Dresden Rev: r38 compiled with gcc 4.4.1 for Beagleboard [] Build: #2 Tue Nov 15 09:44:12 CET 2011
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:80000000;80000fff] [0:80062000;8008ffff] [0:80097000;80097fff] [0:8009f000;8013ffff] [4:80140000;80176fff] [0:80177000;80177fff] [4:80178000;8018efff] [0:8018f000;8100efff] [4:8100f000;8100ffff] [0:81010000;81194fff] [4:81195000;818d1fff] [0:818d2000;86ffffff] IOMEM:---------------------- [0:0;7fffffff] [0:88000000;ffffffff] MOE: Hello world MOE: found 106516 KByte free memory MOE: found RAM from 80000000 to 87000000 MOE: allocated 112 KByte for the page array @0x80062000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:501000] BOOTFS: [81195000-811af39c] [C:503000] l4re BOOTFS: [811b0000-81205670] [C:504000] ned BOOTFS: [81206000-81206302] [C:505000] l4l_1.cfg BOOTFS: [81207000-81207103] [C:506000] arm-omap3.devs BOOTFS: [81208000-8120897f] [C:507000] gumstix-fb-l4l.io BOOTFS: [81209000-812ee074] [C:508000] io BOOTFS: [812ef000-815d10a0] [C:509000] vmlinuz.arm BOOTFS: [815d2000-818d2000] [C:50a000] ramdisk-arm.rd MOE: cmdline: moe rom/l4l_1.cfg MOE: Starting: rom/ned rom/l4l_1.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4l_1.cfg' IO | Io service IO | WARNING: device 'plat' already assigned to an other virtual bus. IO | WARNING: device 'prcm3' already assigned to an other virtual bus. IO | WARNING: device 'prcm2' already assigned to an other virtual bus. IO | WARNING: device 'sys' already assigned to an other virtual bus. IO | WARNING: device 'i2c1' already assigned to an other virtual bus. IO | WARNING: device 'gpio' already assigned to an other virtual bus. IO | Ready. Waiting for request. l4linux | PH 0 (t: 1) offs=00008000 vaddr=00100000 vend=004492ec l4linux | phys=00100000 ephys=004492ec l4linux | f_sz=002c83cc memsz=003492ec flgs=rwx l4linux | PH 1 (t: 4) offs=002d03a8 vaddr=003c83a8 vend=003c83cc l4linux | phys=003c83a8 ephys=003c83cc l4linux | f_sz=00000024 memsz=00000024 flgs=r-x l4linux | PH 2 (t: 1685382481) offs=00000000 vaddr=00000000 vend=00000000 l4linux | phys=00000000 ephys=00000000 l4linux | f_sz=00000000 memsz=00000000 flgs=rwx l4linux | Starting binary at 0x11e2f8, argc=9 argv=0x80007f84 *argv=0xb1007ff0 argv0=rom/vmlinuz.arm l4linux | External resolver is at 0xa80006a0 l4linux | ======> L4Linux 2.6 starting...<======== l4linux | Linux version 3.0.0-l4-svn23 (jdoe@ubuntu) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Tue Nov 15 09:54:29 CET 2011 l4linux | Binary name: rom/vmlinuz.arm l4linux | This is an AEABI build. l4linux | Linux kernel command line (8 args): mem=64M console=ttyLv0 l4x_rd=rom/vHSM.rd root=1:0 rw ramdisk_size=20480 init=/linuxrc debug l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00100000 - 00500000 [4096 KiB]. l4linux | Areas: Text: 00100000 - 003a8000 [2720kB] (a bit longer) l4linux | Data: 003a8000 - 003c38a0 [110kB] l4linux | Initdata: 00100000 - 0011d000 [116kB] l4linux | BSS: 003c83cc - 004492ec [515kB] l4linux | l4lx_thread_create: Created thread 415 (tamer0) (u:b3000400, sp:003cc288) l4linux | Tamer0 is 415 l4linux | Using tamed mode. l4linux | Device scan: l4linux | Device: System Control l4linux | MEM: 48002000 - 480047ff l4linux | MEM: 48004800 - 4800ffff l4linux | Device: i2c l4linux | MEM: 48070000 - 48070fff l4linux | Device: prcm2 l4linux | MEM: 48060000 - 4806007f l4linux | MEM: 48072000 - 4807207f l4linux | MEM: 480ab000 - 480acfff l4linux | MEM: 48200000 - 4820ffff l4linux | MEM: 48306800 - 48309fff l4linux | MEM: 4830a000 - 4830ffff l4linux | MEM: 6c000000 - 6cffffff l4linux | MEM: 6d000000 - 6dffffff l4linux | IRQ: 00000038 - 00000038 l4linux | IRQ: 0000003d - 0000003d l4linux | IRQ: 00000039 - 00000039 l4linux | IRQ: 00000007 - 00000007 l4linux | IRQ: 0000005c - 0000005c l4linux | Device: plat l4linux | IRQ: 0000004d - 0000004d l4linux | l4lx_thread_create: Created thread 417 (cpu0) (u:b3000600, sp:003a9ff0) l4linux | main thread will be 417 l4linux | l4x_register_pointer_section: addr = 00100000 size = 3448832 l4linux | section-with-init: virt: 0x100000 to 0x4492eb [3364 KiB] l4linux | section-with-init: Phys: 0x8034d000 to 0x806962ec, Size: 3445484 l4linux | l4x_linux_startup: thread 417. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007ef4 l4linux | Main memory size: 64MB l4linux | Main memory: virt: 0x500000 to 0x44fffff [65536 KiB] l4linux | Main memory: Phys: 0x81900000 to 0x85900000, Size: 67108864 l4linux | Filling lower ptabs... l4linux | Done (436 entries). l4linux | l4x_register_pointer_section: addr = 004ff000 size = 4096 l4linux | end: virt: 0x4ff000 to 0x4fffff [4 KiB] l4linux | end: Phys: 0x80698000 to 0x80699000, Size: 4096 l4linux | l4x_rd_path: rom/vHSM.rd l4linux | Loading: rom/vHSM.rd l4linux | Failed to query name 'rom/vHSM.rd': No such object found(-2) l4linux | Failed to get initrd: No such object found(-2) l4linux | Couldn't load ramdisk :( l4linux | l4lx_thread_create: Created thread 41c (IRQ CPU0) (u:b3000800, sp:003e3ff0) Linux version 3.0.0-l4-svn23 (jdoe@ubuntu) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Tue Nov 15 09:54:29 CET 2011 CPU: Fiasco [860f0001] revision 1 (ARMvundefined/unknown), cr=00000000 CPU: unknown data cache, unknown instruction cache cpu_v6_proc_init Machine: L4 Memory policy: ECC disabled, Data cache writeback _CACHE_flush_kern_cache_all() On node 0 totalpages: 17409 free_area_init_node: node 0, pgdat 003c2f44, node_mem_map 00500000 DMA zone: 138 pages used for memmap DMA zone: 0 pages reserved DMA zone: 17271 pages, LIFO batch:3 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 17271 Kernel command line: mem=64M console=ttyLv0 l4x_rd=rom/vHSM.rd root=1:0 rw ramdisk_size=20480 init=/linuxrc debug PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 0MB 68MB = 68MB total Memory: 64808k/64808k available, 4828k reserved, 0K highmem Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xffc00000 - 0xffe00000 ( 2 MB) vmalloc : 0x04600000 - 0x0c600000 ( 128 MB) lowmem : 0x00000000 - 0x04500000 ( 69 MB) modules : 0xff100000 - 0x00100000 ( 16 MB) .init : 0x00100000 - 0x0011d000 ( 116 kB) .text : 0x0011e000 - 0x003a6e5c (2596 kB) .data : 0x003a8000 - 0x003c38a0 ( 111 kB) .bss : 0x003c83cc - 0x004492ec ( 516 kB) NR_IRQS:395 nr_irqs:395 395 l4lx_irq_init: creating IRQ thread on cpu 0 Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... irq_thread: Starting IRQ thread on CPU 0 496.43 BogoMIPS (lpj=2482176) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok print_constraints: dummy: NET: Registered protocol family 16 __l4x_ioremap: Mapping physaddr 48002000 [0x1000 Bytes, 48002000+001000] to 04500000+000000 __l4x_ioremap: Mapping physaddr 48306800 [0x2000 Bytes, 48306000+003000] to 04501000+000800 __l4x_ioremap: Mapping physaddr 48004800 [0x2000 Bytes, 48004000+003000] to 04504000+000800 _CACHE_flush_kern_cache_all() __l4x_ioremap: Mapping physaddr 48200000 [0x1000 Bytes, 48200000+001000] to 04507000+000000 IRQ: Found an INTC at 0x04507000 (revision 4.0) with 96 interrupts Total of 96 interrupts on 1 active controller omap3xxx_powerdomains_init recalculate_root_clocks Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz ERROR: IO-memory (68000000+ffff) not available omap_hwmod: l3_main: Could not ioremap omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l3_main omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_core omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_per omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_wkup __l4x_ioremap: Mapping physaddr 48070000 [0x7f Bytes, 48070000+001000] to 04508000+000000 __l4x_ioremap: Mapping physaddr 48072000 [0x7f Bytes, 48072000+001000] to 04509000+000000 __l4x_ioremap: Mapping physaddr 48060000 [0x7f Bytes, 48060000+001000] to 0450a000+000000 __l4x_ioremap: Mapping physaddr 480ab000 [0xfff Bytes, 480ab000+001000] to 0450b000+000000 omap_hwmod: i2c1: softreset failed (waited 10000 usec) omap_hwmod: i2c2: softreset failed (waited 10000 usec) omap_hwmod: i2c3: softreset failed (waited 10000 usec) omap2_common_pm_init Added static device 'System Control' with 2 resources. Added static device 'i2c' with 1 resources. Added static device 'prcm2' with 13 resources. 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 omap_init_opp_table: no hwmod or odev for iva, [9] cannot add OPPs. overo_opp_init: opp default init failed
============ ICLKEN_CORE 7ffffedb ICLKEN_CORE 7ffffedb FCLKEN_CORE 43fffe01 FCLKEN_CORE c3fffe01 CTRL i2c 1 11c0118 CTRL i2c 2 118011c CTRL i2c 3 1c0118 bio: create slab<bio-0> at 0 Failed to create "l4x" debugfs directory: 1 omap_i2c omap_i2c.1: bus 1 rev3.12 at 2600 kHz l4linux | cpu0: utcb=0xb3000600 417 l4linux | l4lx_thread_create: Created thread 41f (idler0) (u:b3000a00, sp:003e5ff4) 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 PIO, IRQ 92 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 NetWinder Floating Point Emulator V0.97 (double precision) msgmni has been set to 126 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver ttyLv0 at MMIO 0x1 (irq = 385) is a L4 L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC 4a:57:0a:8c:6d:1c usb0: HOST MAC 2a:99:fb:8b:c0:d3 g_ether gadget: adding config #2 'RNDIS'/003bf038 g_ether gadget: adding 'rndis'/0414cd60 to config 'RNDIS'/003bf038 rndis_register: configNr = 0 rndis_set_param_medium: 0 0 g_ether gadget: RNDIS: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in g_ether gadget: cfg 2/003bf038 speeds: high full g_ether gadget: interface 0 = rndis/0414cd60 g_ether gadget: interface 1 = rndis/0414cd60 g_ether gadget: adding config #1 'CDC Ethernet (ECM)'/003bef9c g_ether gadget: adding 'cdc_ethernet'/0414cca0 to config 'CDC Ethernet (ECM)'/003bef9c g_ether gadget: CDC Ethernet: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in g_ether gadget: cfg 1/003bef9c speeds: high full g_ether gadget: interface 0 = cdc_ethernet/0414cca0 g_ether gadget: interface 1 = cdc_ethernet/0414cca0 g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready mousedev: PS/2 mouse device common for all mice i2c /dev entries driver TCP cubic registered NET: Registered protocol family 17 omap2_common_pm_late_init
2011/11/2 Giorgio Wickleingiowckln@googlemail.com:
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 mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Sartakov A. Vasily
On Thu Nov 17, 2011 at 12:49:31 +0400, Sartakov A. Vasily wrote:
So.. usb host via ehci uses dma and i have problem in pool_alloc_page(mm/dmapool.c): dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc returns 0 too.
I guess you need to put some 'dmamem' onto your vbus:
DMAMEM => new Device() { .hid = "dmamem"; new-res Mmio_ram(<size-in-bytes>, 0); }
Adam
Thanks, its right Anyway, ehci doesn't work. usb driver hasn't any changes, and i think problem somewhere in dma. for example - when i use musb host with dma it not works, i have a messages like reset high speed USB device number 3 using musb-hdrc reset high speed USB device number 3 using musb-hdrc scsi 0:0:0:0: Device offlined - not ready after error recovery and i cant mount or get device via udevd. when i use it in pio mode - all ok. unfortunately ehci hasnt pio mode, so, i should find solution with dma.
boot log for ehci: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-omap ehci-omap.0: OMAP-EHCI Host Controller ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ------ here call dmapool and it done ok --------- ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 3.0.0-l4-svn23 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected usbcore: registered new interface driver uas Initializing USB Mass Storage driver...
vanila linux: ehci-omap ehci-omap.0: reset hcs_params 0x1313 dbg=0 cc=1 pcc=3 ordered ports=3 ehci-omap ehci-omap.0: reset hcc_params 0016 thresh 1 uframes 256/512/1024 park ehci-omap ehci-omap.0: OMAP-EHCI Host Controller drivers/usb/core/inode.c: creating file '002' ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ehci-omap ehci-omap.0: park 0 ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: reset command 0080b02 park=3 ithresh=8 period=1024 Reset HALT ehci-omap ehci-omap.0: init command 0010005 (park)=0 ithresh=1 period=512 RUN ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: default language 0x0409 usb usb2: udev 1, busnum 2, minor = 128 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.39 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 usb usb2: usb_probe_device usb usb2: configuration #1 chosen from 1 choice usb usb2: adding 2-0:1.0 (config #1, interface 0) hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: individual port power switching hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 20ms hub 2-0:1.0: local power source is good hub 2-0:1.0: enabling power on all ports
2011/11/18 Adam Lackorzynski adam@os.inf.tu-dresden.de:
On Thu Nov 17, 2011 at 12:49:31 +0400, Sartakov A. Vasily wrote:
So.. usb host via ehci uses dma and i have problem in pool_alloc_page(mm/dmapool.c): dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc returns 0 too.
I guess you need to put some 'dmamem' onto your vbus:
DMAMEM => new Device() { .hid = "dmamem"; new-res Mmio_ram(<size-in-bytes>, 0); }
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi folks I am looked into sd/mmc card driver, which use only dma, and it doesn't work. i have a problem with omap_request_dma (plat-omap): before call omap_request_dma i should make init platform's dma, and i don't think what its good idea.
2011/11/18 Sartakov A. Vasily sartakov@ksyslabs.org:
Thanks, its right Anyway, ehci doesn't work. usb driver hasn't any changes, and i think problem somewhere in dma. for example - when i use musb host with dma it not works, i have a messages like reset high speed USB device number 3 using musb-hdrc reset high speed USB device number 3 using musb-hdrc scsi 0:0:0:0: Device offlined - not ready after error recovery and i cant mount or get device via udevd. when i use it in pio mode - all ok. unfortunately ehci hasnt pio mode, so, i should find solution with dma.
boot log for ehci: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-omap ehci-omap.0: OMAP-EHCI Host Controller ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ------ here call dmapool and it done ok --------- ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 3.0.0-l4-svn23 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected usbcore: registered new interface driver uas Initializing USB Mass Storage driver...
vanila linux: ehci-omap ehci-omap.0: reset hcs_params 0x1313 dbg=0 cc=1 pcc=3 ordered ports=3 ehci-omap ehci-omap.0: reset hcc_params 0016 thresh 1 uframes 256/512/1024 park ehci-omap ehci-omap.0: OMAP-EHCI Host Controller drivers/usb/core/inode.c: creating file '002' ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ehci-omap ehci-omap.0: park 0 ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: reset command 0080b02 park=3 ithresh=8 period=1024 Reset HALT ehci-omap ehci-omap.0: init command 0010005 (park)=0 ithresh=1 period=512 RUN ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: default language 0x0409 usb usb2: udev 1, busnum 2, minor = 128 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.39 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 usb usb2: usb_probe_device usb usb2: configuration #1 chosen from 1 choice usb usb2: adding 2-0:1.0 (config #1, interface 0) hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: individual port power switching hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 20ms hub 2-0:1.0: local power source is good hub 2-0:1.0: enabling power on all ports
2011/11/18 Adam Lackorzynski adam@os.inf.tu-dresden.de:
On Thu Nov 17, 2011 at 12:49:31 +0400, Sartakov A. Vasily wrote:
So.. usb host via ehci uses dma and i have problem in pool_alloc_page(mm/dmapool.c): dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc returns 0 too.
I guess you need to put some 'dmamem' onto your vbus:
DMAMEM => new Device() { .hid = "dmamem"; new-res Mmio_ram(<size-in-bytes>, 0); }
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Sartakov A. Vasily
Hello Can you tell me please where i can read about DMA and IOMMU realisation in Fiasco/l4?
2011/11/23 Sartakov A. Vasily sartakov@ksyslabs.org:
Hi folks I am looked into sd/mmc card driver, which use only dma, and it doesn't work. i have a problem with omap_request_dma (plat-omap): before call omap_request_dma i should make init platform's dma, and i don't think what its good idea.
2011/11/18 Sartakov A. Vasily sartakov@ksyslabs.org:
Thanks, its right Anyway, ehci doesn't work. usb driver hasn't any changes, and i think problem somewhere in dma. for example - when i use musb host with dma it not works, i have a messages like reset high speed USB device number 3 using musb-hdrc reset high speed USB device number 3 using musb-hdrc scsi 0:0:0:0: Device offlined - not ready after error recovery and i cant mount or get device via udevd. when i use it in pio mode - all ok. unfortunately ehci hasnt pio mode, so, i should find solution with dma.
boot log for ehci: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-omap ehci-omap.0: OMAP-EHCI Host Controller ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ------ here call dmapool and it done ok --------- ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 3.0.0-l4-svn23 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected usbcore: registered new interface driver uas Initializing USB Mass Storage driver...
vanila linux: ehci-omap ehci-omap.0: reset hcs_params 0x1313 dbg=0 cc=1 pcc=3 ordered ports=3 ehci-omap ehci-omap.0: reset hcc_params 0016 thresh 1 uframes 256/512/1024 park ehci-omap ehci-omap.0: OMAP-EHCI Host Controller drivers/usb/core/inode.c: creating file '002' ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2 ehci-omap ehci-omap.0: park 0 ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: reset command 0080b02 park=3 ithresh=8 period=1024 Reset HALT ehci-omap ehci-omap.0: init command 0010005 (park)=0 ithresh=1 period=512 RUN ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 usb usb2: default language 0x0409 usb usb2: udev 1, busnum 2, minor = 128 usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: OMAP-EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.39 ehci_hcd usb usb2: SerialNumber: ehci-omap.0 usb usb2: usb_probe_device usb usb2: configuration #1 chosen from 1 choice usb usb2: adding 2-0:1.0 (config #1, interface 0) hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: individual port power switching hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 20ms hub 2-0:1.0: local power source is good hub 2-0:1.0: enabling power on all ports
2011/11/18 Adam Lackorzynski adam@os.inf.tu-dresden.de:
On Thu Nov 17, 2011 at 12:49:31 +0400, Sartakov A. Vasily wrote:
So.. usb host via ehci uses dma and i have problem in pool_alloc_page(mm/dmapool.c): dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc returns 0 too.
I guess you need to put some 'dmamem' onto your vbus:
DMAMEM => new Device() { .hid = "dmamem"; new-res Mmio_ram(<size-in-bytes>, 0); }
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Sartakov A. Vasily
-- Sartakov A. Vasily
On Fri Nov 25, 2011 at 20:58:38 +0400, Sartakov A. Vasily wrote:
Hello Can you tell me please where i can read about DMA and IOMMU realisation in Fiasco/l4?
Hmm, well, Fiasco itself does not care about DMA. I think the only trick about DMA is the dmamem piece of memory from io. The rest is up to Linux.
Adam
l4-hackers@os.inf.tu-dresden.de