Перейти к содержанию
    

Не могу поднять USB в режиме Device под Linux на плате от Xilinx - ZC706

День добрый всем!

Задача стоит такая: нужно реализовать управление платой, на которой крутится Linux, через USB от компьютера (тоже под управлением Linux'а), который должен быть хостом. Пример пытаюсь поднять на плате ZC-706. Линукс - linux-xlnx из их репозитория (версия 4.14)

Скажите пожалуйста, делал ли кто-либо когда USB под Linux в режиме Device или Gadget? Довольно долго я пытаюсь его поднять - пока-что не получается. Есть страница, на которой это показано:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842272/Zynq+Linux+USB+Device+Driver?createDialog=true

но не работает и не запускается. Я доустановил все необходимое в ядре и установил все нужные модули, сконфигурировал и пересобрал ядро. Также, devicetree изменил согласно приведенной ссылке и скомпилировал. Но при этом результата не видно. При подключении к USB никаких изменений не видно ни на хосте ни на таргете.

    Для режима Ethernet - попытался поднять его, проходят все команды, но вываливается все на команде: echo "ci_hdrc.0" > UDC . Это как бы не удивительно, потому-что никакого ci_hdrc.0 в системе просто нет. Но как это все-таки поднять  - не понятно.

    Для режима CDC UART есть другая ссылка: 

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841624/Zynq-7000+AP+SoC+USB+CDC+Device+Class+Design+Example+Techtip

Но тоже вываливается уже на этапе загрузки драйверов:

При команде:  insmod usb_f_serial.ko получаем:

usb_f_serial: Unknown symbol gserial_alloc_line (err 0)                         
usb_f_serial: Unknown symbol gserial_disconnect (err 0)                         
usb_f_serial: Unknown symbol gserial_connect (err 0)

При команде:  insmod usb_f_acm.ko получаем:

usb_f_acm: Unknown symbol gs_free_req (err 0)                                   
usb_f_acm: Unknown symbol gserial_free_line (err 0)                             
usb_f_acm: Unknown symbol gserial_alloc_line (err 0)                            
usb_f_acm: Unknown symbol gs_alloc_req (err 0)                                  
usb_f_acm: Unknown symbol gserial_disconnect (err 0)                            
usb_f_acm: Unknown symbol gserial_connect (err 0)

При команде: insmod g_serial.ko получаем:

udc-core: couldn't find an available UDC - added [g_serial] to list of pending drivs

Подскажите пожалуйста, как это лечится!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Kiryanov said:

Unknown symbol

это вы видать в ядре не все сконфигурировали. Все функции ссылаются на u_serial.h, видать не загружена

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот лог заргузки:

Starting kernel ...                                                             
                                                                                
Booting Linux on physical CPU 0x0                                               
Linux version 4.14.0-xilinx-00045-g7e719b9a7393 (konstantin@David) (gcc version0
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d                 
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache        
OF: fdt: Machine model: xlnx,zynq-7000                                          
Memory policy: Data cache writealloc                                            
cma: Reserved 16 MiB at 0x3f000000                                              
random: fast init done                                                          
percpu: Embedded 16 pages/cpu @ef7cf000 s34764 r8192 d22580 u65536              
Built 1 zonelists, mobility grouping on.  Total pages: 260608                   
Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rt
PID hash table entries: 4096 (order: 2, 16384 bytes)                            
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)                
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)                  
Memory: 1012892K/1048576K available (6144K kernel code, 239K rwdata, 1588K roda)
Virtual kernel memory layout:                                                   
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)                               
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)                               
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)                               
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)                               
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)                               
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)                               
      .text : 0xc0008000 - 0xc0700000   (7136 kB)                               
      .init : 0xc0900000 - 0xc0a00000   (1024 kB)                               
      .data : 0xc0a00000 - 0xc0a3bd80   ( 240 kB)                               
       .bss : 0xc0a3bd80 - 0xc0a62444   ( 154 kB)                               
Preemptible hierarchical RCU implementation.                                    
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.                    
        Tasks RCU enabled.                                                      
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2                    
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16                                 
efuse mapped to f0800000                                                        
slcr mapped to f0802000                                                         
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000           
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000        
L2C-310 erratum 769419 enabled                                                  
L2C-310 enabling early BRESP for Cortex-A9                                      
L2C-310 full line of zeros enabled for Cortex-A9                                
L2C-310 ID prefetch enabled, offset 1 lines                                     
L2C-310 dynamic clock gating enabled, standby mode enabled                      
L2C-310 cache controller enabled, 8 ways, 512 kB                                
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001                               
zynq_clock_init: clkc starts at f0802100                                        
Zynq clock init                                                                 
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns     
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af02s
Switching to timer-based delay loop, resolution 3ns                             
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537s
timer #0 at f080a000, irq=17                                                    
Console: colour dummy device 80x30                                              
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.)
pid_max: default: 32768 minimum: 301                                            
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)                     
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)                
CPU: Testing write buffer coherency: ok                                         
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000                                
Setting up static identity map for 0x100000 - 0x100060                          
Hierarchical SRCU implementation.                                               
smp: Bringing up secondary CPUs ...                                             
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001                                
smp: Brought up 1 node, 2 CPUs                                                  
SMP: Total of 2 processors activated (1333.33 BogoMIPS).                        
CPU: All CPU(s) started in SVC mode.                                            
devtmpfs: initialized                                                           
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4         
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 191s
futex hash table entries: 512 (order: 3, 32768 bytes)                           
pinctrl core: initialized pinctrl subsystem                                     
NET: Registered protocol family 16                                              
DMA: preallocated 256 KiB pool for atomic coherent allocations                  
cpuidle: using governor menu                                                    
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.     
hw-breakpoint: maximum watchpoint size is 4 bytes.                              
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xf0880000                     
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized                              
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 26, base_baud = 6249999) is as
console [ttyPS0] enabled                                                        
vgaarb: loaded                                                                  
SCSI subsystem initialized                                                      
usbcore: registered new interface driver usbfs                                  
usbcore: registered new interface driver hub                                    
usbcore: registered new device driver usb                                       
media: Linux media interface: v0.10                                             
Linux video capture interface: v2.00                                            
pps_core: LinuxPPS API ver. 1 registered                                        
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@>
PTP clock support registered                                                    
EDAC MC: Ver: 3.0.0                                                             
FPGA manager framework                                                          
fpga-region fpga-full: FPGA Region probed                                       
Advanced Linux Sound Architecture Driver Initialized.                           
clocksource: Switched to clocksource arm_global_timer                           
NET: Registered protocol family 2                                               
TCP established hash table entries: 8192 (order: 3, 32768 bytes)                
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)                       
TCP: Hash tables configured (established 8192 bind 8192)                        
UDP hash table entries: 512 (order: 2, 16384 bytes)                             
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)                        
NET: Registered protocol family 1                                               
RPC: Registered named UNIX socket transport module.                             
RPC: Registered udp transport module.                                           
RPC: Registered tcp transport module.                                           
RPC: Registered tcp NFSv4.1 backchannel transport module.                       
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.      
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available    
workingset: timestamp_bits=30 max_order=18 bucket_order=0                       
jffs2: version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.                
bounce: pool size: 64 pages                                                     
io scheduler noop registered                                                    
io scheduler deadline registered                                                
io scheduler cfq registered (default)                                           
io scheduler mq-deadline registered                                             
io scheduler kyber registered                                                   
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330                    
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Eve6
brd: module loaded                                                              
loop: module loaded                                                             
libphy: Fixed MDIO Bus: probed                                                  
CAN device driver interface                                                     
libphy: MACB_mii_bus: probed                                                    
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 29 (0)
Marvell 88E1116R e000b000.ethernet-ffffffff:07: attached PHY driver [Marvell 88)
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k                              
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.                             
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver                      
ehci-pci: EHCI PCI platform driver                                              
usbcore: registered new interface driver usb-storage                            
i2c /dev entries driver                                                         
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 23                             
IR NEC protocol handler initialized                                             
IR RC5(x/sz) protocol handler initialized                                       
IR RC6 protocol handler initialized                                             
IR JVC protocol handler initialized                                             
IR Sony protocol handler initialized                                            
IR SANYO protocol handler initialized                                           
IR Sharp protocol handler initialized                                           
IR MCE Keyboard/mouse protocol handler initialized                              
IR XMP protocol handler initialized                                             
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at f098c000 with timeout 10s  
EDAC MC: ECC not enabled                                                        
Xilinx Zynq CpuIdle Driver started                                              
sdhci: Secure Digital Host Controller Interface driver                          
sdhci: Copyright(c) Pierre Ossman                                               
sdhci-pltfm: SDHCI platform and OF driver helper                                
mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA            
ledtrig-cpu: registered to indicate activity on CPUs                            
usbcore: registered new interface driver usbhid                                 
usbhid: USB HID core driver                                                     
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered                         
NET: Registered protocol family 10                                              
Segment Routing with IPv6                                                       
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver                             
NET: Registered protocol family 17                                              
can: controller area network core (rev 20170425 abi 9)                          
NET: Registered protocol family 29                                              
can: raw protocol (rev 20170425)                                                
can: broadcast manager protocol (rev 20170425 t)                                
can: netlink gateway (rev 20170425) max_hops=1                                  
Registering SWP/SWPB emulation handler                                          
hctosys: unable to open rtc device (rtc0)                                       
of_cfs_init                                                                     
of_cfs_init: OK                                                                 
ALSA device list:                                                               
  No soundcards found.                                                          
Waiting for root device /dev/mmcblk0p2...                                       
mmc0: new high speed SDHC card at address 59b4                                  
mmcblk0: mmc0:59b4 USDU1 29.7 GiB                                               
 mmcblk0: p1 p2                                                                 
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)    
VFS: Mounted root (ext4 filesystem) on device 179:2.                            
devtmpfs: mounted                                                               
Freeing unused kernel memory: 1024K                                             
systemd[1]: System time before build time, advancing clock.                     
systemd[1]: Failed to insert module 'autofs4': No such file or directory        
systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APP)
systemd[1]: Detected architecture arm.                                          
                                                                                
Welcome to Debian GNU/Linux 9 (stretch)!                                        
                                                                                
systemd[1]: Set hostname to <David>.                                            
systemd[1]: Reached target Swap.                                                
[  OK  ] Reached target Swap.                                                   
systemd[1]: Listening on Journal Socket.                                        
[  OK  ] Listening on Journal Socket.                                           
systemd[1]: Created slice System Slice.                                         
[  OK  ] Created slice System Slice.                                            
systemd[1]: Starting Create list of required static device nodes for the curren.
         Starting Create list of required st��…ce nodes for the current kernel..
systemd[1]: Starting Load Kernel Modules...                                     
         Starting Load Kernel Modules...                                        
systemd[1]: Mounting RPC Pipe File System...                                    
         Mounting RPC Pipe File System...                                       
systemd[1]: dev-hugepages.mount: Couldn't determine result for ConditionVirtualy
         Starting Remount Root and Kernel File Systems...                       
[  OK  ] Listening on RPCbind Server Activation Socket.                         
[  OK  ] Listening on udev Control Socket.                                      
[  OK  ] Listening on Syslog Socket.                                            
[  OK  ] Started Forward Password Requests to Wall Directory Watch.             
[  OK  ] Listening on udev Kernel Socket.                                       
[  OK  ] Created slice system-serial\x2dgetty.slice.                            
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.                    
         Mounting POSIX Message Queue File System...                            
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.         
[  OK  ] Reached target Encrypted Volumes.                                      
[  OK  ] Reached target Slices.                                                 
[  OK  ] Listening on Journal Socket (/dev/log).                                
         Starting Journal Service...                                            
[  OK  ] Reached target Sockets.                                                
[  OK  ] Created slice system-getty.slice.                                      
[  OK  ] Reached target Paths.                                                  
[  OK  ] Mounted RPC Pipe File System.                                          
[  OK  ] Mounted POSIX Message Queue File System.                               
[  OK  ] Started Journal Service.                                               
[  OK  ] Started Create list of required sta��…vice nodes for the current kerne.
[  OK  ] Started Load Kernel Modules.                                           
[  OK  ] Started Remount Root and Kernel File Systems.                          
         Starting udev Coldplug all Devices...                                  
         Starting Load/Save Random Seed...                                      
         Starting Apply Kernel Variables...                                     
         Mounting Configuration File System...                                  
         Starting Create Static Device Nodes in /dev...                         
         Starting Flush Journal to Persistent Storage...                        
[  OK  ] Mounted Configuration File System.                                     
[  OK  ] Started Load/Save Random Seed.                                         
[  OK  ] Started Apply Kernel Variables.                                        
[  OK  ] Started Create Static Device Nodes in /dev.                            
systemd-journald[710]: Received request to flush runtime journal from PID 1     
[  OK  ] Reached target Local File Systems (Pre).                               
[  OK  ] Reached target Local File Systems.                                     
         Starting Preprocess NFS configuration...                               
         Starting udev Kernel Device Manager...                                 
         Starting Raise network interfaces...                                   
[  OK  ] Started Flush Journal to Persistent Storage.                           
[  OK  ] Started udev Coldplug all Devices.                                     
[  OK  ] Started Preprocess NFS configuration.                                  
[  OK  ] Started udev Kernel Device Manager.                                    
[  OK  ] Reached target NFS client services.                                    
         Starting Create Volatile Files and Directories...                      
[  OK  ] Found device /dev/ttyPS0.                                              
[  OK  ] Started Create Volatile Files and Directories.                         
         Starting RPC bind portmap service...                                   
         Starting Update UTMP about System Boot/Shutdown...                     
         Starting Network Time Synchronization...                               
[  OK  ] Started Update UTMP about System Boot/Shutdown.                        
[  OK  ] Started RPC bind portmap service.                                      
[  OK  ] Started Network Time Synchronization.                                  
[  OK  ] Reached target System Time Synchronized.                               
[  OK  ] Reached target Remote File Systems (Pre).                              
[  OK  ] Reached target Remote File Systems.                                    
[  OK  ] Reached target RPC Port Mapper.                                        
[  OK  ] Reached target System Initialization.                                  
[  OK  ] Started Daily Cleanup of Temporary Directories.                        
[  OK  ] Started Daily apt download activities.                                 
[  OK  ] Reached target Basic System.                                           
         Starting getty on tty2-tty6 if dbus and logind are not available...    
         Starting System Logging Service...                                     
[  OK  ] Started Daily apt upgrade and clean activities.                        
[  OK  ] Reached target Timers.                                                 
[  OK  ] Started Regular background program processing daemon.                  
[  OK  ] Started System Logging Service.                                        
[  OK  ] Started getty on tty2-tty6 if dbus and logind are not available.       
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready                              
[  OK  ] Started Raise network interfaces.                                      
[  OK  ] Reached target Network.                                                
         Starting OpenBSD Secure Shell server...                                
         Starting Permit User Sessions...                                       
[  OK  ] Started Permit User Sessions.                                          
[  OK  ] Started Serial Getty on ttyPS0.                                        
[  OK  ] Started Getty on tty5.                                                 
[  OK  ] Started Getty on tty3.                                                 
[  OK  ] Started Getty on tty1.                                                 
[  OK  ] Started Getty on tty2.                                                 
[  OK  ] Started Getty on tty4.                                                 
[  OK  ] Started Getty on tty6.                                                 
[  OK  ] Reached target Login Prompts.                                          
[  OK  ] Started OpenBSD Secure Shell server.                                   
[  OK  ] Reached target Multi-User System.                                      
[  OK  ] Reached target Graphical Interface.                                    
         Starting Update UTMP about System Runlevel Changes...                  
[  OK  ] Started Update UTMP about System Runlevel Changes.                     
                                                                                
Debian GNU/Linux 9 David ttyPS0                                                 
                                                                                
David login: macb e000b000.ethernet eth0: link up (100/Full)                    
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready                         

 

 

 

А вот dmesg:

root@David:~# dmesg                                                             
[    0.000000] Booting Linux on physical CPU 0x0                                
[    0.000000] Linux version 4.14.0-xilinx-00045-g7e719b9a7393 (konstantin@Davi0
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d  
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructie
[    0.000000] OF: fdt: Machine model: xlnx,zynq-7000                           
[    0.000000] Memory policy: Data cache writealloc                             
[    0.000000] cma: Reserved 16 MiB at 0x3f000000                               
[    0.000000] On node 0 totalpages: 262144                                     
[    0.000000] free_area_init_node: node 0, pgdat c0a3b180, node_mem_map ef7f800
[    0.000000]   Normal zone: 1536 pages used for memmap                        
[    0.000000]   Normal zone: 0 pages reserved                                  
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31                       
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15                       
[    0.000000] random: fast init done                                           
[    0.000000] percpu: Embedded 16 pages/cpu @ef7cf000 s34764 r8192 d22580 u6556
[    0.000000] pcpu-alloc: s34764 r8192 d22580 u65536 alloc=16*4096             
[    0.000000] pcpu-alloc: [0] 0 [0] 1                                          
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608    
[    0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rt
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)             
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)   
[    0.000000] Memory: 1012892K/1048576K available (6144K kernel code, 239K rwd)
[    0.000000] Virtual kernel memory layout:                                    
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)                
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)                
                   vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)                
                   lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)                
                   pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)                
                   modules : 0xbf000000 - 0xbfe00000   (  14 MB)                
                     .text : 0xc0008000 - 0xc0700000   (7136 kB)                
                     .init : 0xc0900000 - 0xc0a00000   (1024 kB)                
                     .data : 0xc0a00000 - 0xc0a3bd80   ( 240 kB)                
                      .bss : 0xc0a3bd80 - 0xc0a62444   ( 154 kB)                
[    0.000000] Preemptible hierarchical RCU implementation.                     
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.            
[    0.000000]  Tasks RCU enabled.                                              
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2     
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16                  
[    0.000000] efuse mapped to f0800000                                         
[    0.000000] slcr mapped to f0802000                                          
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x7270
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x0
[    0.000000] L2C-310 erratum 769419 enabled                                   
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9                       
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9                 
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines                      
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled       
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB                 
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001                
[    0.000000] zynq_clock_init: clkc starts at f0802100                         
[    0.000000] Zynq clock init                                                  
[    0.000010] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398s
[    0.000029] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycls
[    0.000056] Switching to timer-based delay loop, resolution 3ns              
[    0.000152] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, ms
[    0.000183] timer #0 at f080a000, irq=17                                     
[    0.000588] Console: colour dummy device 80x30                               
[    0.000612] Calibrating delay loop (skipped), value calculated using timer f)
[    0.000627] pid_max: default: 32768 minimum: 301                             
[    0.000771] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)      
[    0.000785] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001346] CPU: Testing write buffer coherency: ok                          
[    0.001539] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000                 
[    0.040333] Setting up static identity map for 0x100000 - 0x100060           
[    0.060294] Hierarchical SRCU implementation.                                
[    0.100292] smp: Bringing up secondary CPUs ...                              
[    0.170628] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001                 
[    0.170738] smp: Brought up 1 node, 2 CPUs                                   
[    0.170751] SMP: Total of 2 processors activated (1333.33 BogoMIPS).         
[    0.170757] CPU: All CPU(s) started in SVC mode.                             
[    0.171712] devtmpfs: initialized                                            
[    0.174093] VFP support v0.3: implementor 41 architecture 3 part 30 variant 4
[    0.174390] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ms
[    0.174408] futex hash table entries: 512 (order: 3, 32768 bytes)            
[    0.175369] pinctrl core: initialized pinctrl subsystem                      
[    0.176176] NET: Registered protocol family 16                               
[    0.182297] DMA: preallocated 256 KiB pool for atomic coherent allocations   
[    0.183271] cpuidle: using governor menu                                     
[    0.189504] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint.
[    0.189516] hw-breakpoint: maximum watchpoint size is 4 bytes.               
[    0.189632] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xf0880000      
[    0.189969] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized               
[    0.190410] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 26, base_baud s
[    0.559597] console [ttyPS0] enabled                                         
[    0.578702] vgaarb: loaded                                                   
[    0.580337] SCSI subsystem initialized                                       
[    0.582977] usbcore: registered new interface driver usbfs                   
[    0.587131] usbcore: registered new interface driver hub                     
[    0.591176] usbcore: registered new device driver usb                        
[    0.595041] media: Linux media interface: v0.10                              
[    0.598227] Linux video capture interface: v2.00                             
[    0.601592] pps_core: LinuxPPS API ver. 1 registered                         
[    0.605164] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giom>
[    0.614324] PTP clock support registered                                     
[    0.616910] EDAC MC: Ver: 3.0.0                                              
[    0.620862] FPGA manager framework                                           
[    0.623096] fpga-region fpga-full: FPGA Region probed                        
[    0.626952] Advanced Linux Sound Architecture Driver Initialized.            
[    0.632571] clocksource: Switched to clocksource arm_global_timer            
[    0.647467] NET: Registered protocol family 2                                
[    0.651084] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.657020] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)        
[    0.662208] TCP: Hash tables configured (established 8192 bind 8192)         
[    0.667281] UDP hash table entries: 512 (order: 2, 16384 bytes)              
[    0.671860] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)         
[    0.677145] NET: Registered protocol family 1                                
[    0.680522] RPC: Registered named UNIX socket transport module.              
[    0.685092] RPC: Registered udp transport module.                            
[    0.688439] RPC: Registered tcp transport module.                            
[    0.691824] RPC: Registered tcp NFSv4.1 backchannel transport module.        
[    0.696988] PCI: CLS 0 bytes, default 64                                     
[    0.697507] hw perfevents: no interrupt-affinity property for /pmu@f8891000,.
[    0.704243] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 countee
[    0.712469] workingset: timestamp_bits=30 max_order=18 bucket_order=0        
[    0.718194] jffs2: version 2.2. (NAND) (SUMMARY)  \xffffffc2\xffffffa9 2001-.
[    0.724717] bounce: pool size: 64 pages                                      
[    0.727171] io scheduler noop registered                                     
[    0.729765] io scheduler deadline registered                                 
[    0.732828] io scheduler cfq registered (default)                            
[    0.736146] io scheduler mq-deadline registered                              
[    0.739356] io scheduler kyber registered                                    
[    0.744107] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330     
[    0.749423] dma-pl330 f8003000.dmac:         DBUFF-128x8bytes Num_Chans-8 Nu6
[    0.765198] brd: module loaded                                               
[    0.771977] loop: module loaded                                              
[    0.776296] libphy: Fixed MDIO Bus: probed                                   
[    0.781359] CAN device driver interface                                      
[    0.785156] libphy: MACB_mii_bus: probed                                     
[    1.582668] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe00)
[    1.591115] Marvell 88E1116R e000b000.ethernet-ffffffff:07: attached PHY dri)
[    1.604129] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k               
[    1.608570] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.              
[    1.614286] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver       
[    1.619421] ehci-pci: EHCI PCI platform driver                               
[    1.622985] usbcore: registered new interface driver usb-storage             
[    1.628915] i2c /dev entries driver                                          
[    1.631646] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 23              
[    1.636512] IR NEC protocol handler initialized                              
[    1.639654] IR RC5(x/sz) protocol handler initialized                        
[    1.643416] IR RC6 protocol handler initialized                              
[    1.646598] IR JVC protocol handler initialized                              
[    1.649809] IR Sony protocol handler initialized                             
[    1.653124] IR SANYO protocol handler initialized                            
[    1.656493] IR Sharp protocol handler initialized                            
[    1.659878] IR MCE Keyboard/mouse protocol handler initialized               
[    1.664411] IR XMP protocol handler initialized                              
[    1.669108] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at f098c000 wis
[    1.676319] EDAC MC: ECC not enabled                                         
[    1.678656] Xilinx Zynq CpuIdle Driver started                               
[    1.682089] sdhci: Secure Digital Host Controller Interface driver           
[    1.686913] sdhci: Copyright(c) Pierre Ossman                                
[    1.689920] sdhci-pltfm: SDHCI platform and OF driver helper                 
[    1.762599] mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using A
[    1.768973] ledtrig-cpu: registered to indicate activity on CPUs             
[    1.773859] usbcore: registered new interface driver usbhid                  
[    1.779065] usbhid: USB HID core driver                                      
[    1.783531] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered          
[    1.789995] NET: Registered protocol family 10                               
[    1.804087] Segment Routing with IPv6                                        
[    1.806432] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver              
[    1.811599] NET: Registered protocol family 17                               
[    1.814718] can: controller area network core (rev 20170425 abi 9)           
[    1.819561] NET: Registered protocol family 29                               
[    1.822669] can: raw protocol (rev 20170425)                                 
[    1.825589] can: broadcast manager protocol (rev 20170425 t)                 
[    1.829936] can: netlink gateway (rev 20170425) max_hops=1                   
[    1.834538] Registering SWP/SWPB emulation handler                           
[    1.838716] hctosys: unable to open rtc device (rtc0)                        
[    1.842397] of_cfs_init                                                      
[    1.843615] of_cfs_init: OK                                                  
[    1.845265] ALSA device list:                                                
[    1.846858]   No soundcards found.                                           
[    1.849296] Waiting for root device /dev/mmcblk0p2...                        
[    1.856786] mmc0: new high speed SDHC card at address 59b4                   
[    1.861237] mmcblk0: mmc0:59b4 USDU1 29.7 GiB                                
[    1.865380]  mmcblk0: p1 p2                                                  
[    1.902087] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. )
[    1.908872] VFS: Mounted root (ext4 filesystem) on device 179:2.             
[    1.916120] devtmpfs: mounted                                                
[    1.920428] Freeing unused kernel memory: 1024K                              
[    2.287620] systemd[1]: System time before build time, advancing clock.      
[    2.324811] systemd[1]: Failed to insert module 'autofs4': No such file or dy
[    2.352196] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SE)
[    2.369298] systemd[1]: Detected architecture arm.                           
[    2.404035] systemd[1]: Set hostname to <David>.                             
[    2.793805] systemd[1]: Reached target Swap.                                 
[    2.823036] systemd[1]: Listening on Journal Socket.                         
[    2.853164] systemd[1]: Created slice System Slice.                          
[    2.885348] systemd[1]: Starting Create list of required static device nodes.
[    2.928313] systemd[1]: Starting Load Kernel Modules...                      
[    2.955011] systemd[1]: Mounting RPC Pipe File System...                     
[    2.982902] systemd[1]: dev-hugepages.mount: Couldn't determine result for Cy
[    4.062333] systemd-journald[710]: Received request to flush runtime journal1
[    5.572866] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready               
[    7.652957] macb e000b000.ethernet eth0: link up (100/Full)                  
[    7.657159] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready          
root@David:~#

Изменено пользователем Kiryanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще USB не увидел. Либо драйвер в ядре забыли, либо в DT не прописали или прописали неправильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал еще вот это:

root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget# modprobe libcomposite.ko
modprobe: FATAL: Module libcomposite.ko not found in directory /lib/modules/4.14.0-xilinx-00045-g7e719b9a7393
root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget#

а insmod - сработал:

root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget# insmod libcomposite.ko
root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget#

то же самое было и с usb_f_mass_storage.ko:

root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget/function# modprobe usb_f_mass_storage.ko
modprobe: FATAL: Module usb_f_mass_storage.ko not found in directory /lib/modules/4.14.0-xilinx-00045-g7e719b9a7393
root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget/function# insmod usb_f_mass_storage.ko
root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget/function#

root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget/function# lsmod
Module                  Size  Used by
usb_f_mass_storage     32768  0
libcomposite           36864  1 usb_f_mass_storage

Почему не сработало modprobe?

Затем:

cd /sys/kernel/config/usb_gadget/
root@David:/sys/kernel/config/usb_gadget# mkdir g1
root@David:/sys/kernel/config/usb_gadget# cd g1/
root@David:/sys/kernel/config/usb_gadget/g1# ls
UDC         bDeviceSubClass  bcdUSB     idProduct    os_desc
bDeviceClass     bMaxPacketSize0  configs    idVendor    strings
bDeviceProtocol  bcdDevice      functions  max_speed
root@David:/sys/kernel/config/usb_gadget/g1# echo "64" > bMaxPacketSize0
root@David:/sys/kernel/config/usb_gadget/g1# echo "0x200" > bcdUSB
root@David:/sys/kernel/config/usb_gadget/g1# echo "0x100" > bcdDevice
root@David:/sys/kernel/config/usb_gadget/g1# echo "0x03FD" > idVendor
root@David:/sys/kernel/config/usb_gadget/g1# echo "0x0500" > idProduct
root@David:/sys/kernel/config/usb_gadget/g1# mkdir functions/mass_storage.ms0
root@David:/sys/kernel/config/usb_gadget/g1# mkdir configs/c1.1
root@David:/sys/kernel/config/usb_gadget/g1# echo /tmp/mydev > functions/mass_storage.ms0/lun.0/file
root@David:/sys/kernel/config/usb_gadget/g1# echo 1 > functions/mass_storage.ms0/lun.0/removable
root@David:/sys/kernel/config/usb_gadget/g1# ln -s functions/mass_storage.ms0 configs/c1.1/
root@David:/sys/kernel/config/usb_gadget/g1# echo "ci_hdrc.0" > UDC
-bash: echo: write error: No such device

результат тот же с ci_hdrc.0.

5 minutes ago, gosha-z said:

Вообще USB не увидел. Либо драйвер в ядре забыли, либо в DT не прописали или прописали неправильно.

DeviceTree поправить? Да, там по моему стоит host

Изменено пользователем Kiryanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, gosha-z said:

modprobe не сработал потому, что depmod не применен.

команда: /sbin/depmod -a  ничего не дала. По прежнему:

# modprobe libcomposite.ko
modprobe: FATAL: Module libcomposite.ko not found in directory /lib/modules/4.14.0-xilinx-00045-g7e719b9a7393
root@David:/lib/modules/4.14.0-xilinx-00045-g7e719b9a7393/kernel/drivers/usb/gadget#

И ядро и модули пересобирал с полной очисткой

Этот момент так и не понятен.

Изменено пользователем Kiryanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, gosha-z said:

Решайте проблемы с физикой сначала

ПО поводу физики - тоже момент. При подключении по USB к хосту - вешается minicom, ну и, как я понял, естественно UART, через который все выводится. В KIT'е конфигурация пинов для USB, честно сказать я ее не понимаю. Может сталкивался кто с USB на ZC706?

Изменено пользователем Kiryanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

В общем сначала победил эту проблему на рабочем девайсе, затем и на отладочной плате. Версию linux поменял на xlnx-linux 4.19 rebase. Все в принципе так, как показано здесь:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842272/Zynq+Linux+USB+Device+Driver

за исключением нескольких моментов:

Если собираете с нуля (например с помощью buildroot), то нужно включить следующее:

Device Drivers  ---> [*] USB support  --->

[*]   OTG support

 <*>   USB Gadget Support  --->

       <M>   USB Gadget functions configurable through configfs

        [*]     RNDIS

        [*]     Mass storage

       <M>   USB Gadget precomposed configurations

       <M>     Gadget Zero (DEVELOPMENT)

       <M>     Ethernet Gadget (with CDC Ethernet support)

               [*]       RNDIS support

      <M>     Gadget Filesystem

      <M>     Mass Storage Gadget

С такой конфигурацией собирается ядро, затем в devicetree.dts изменяется конфигурация usb:

По умолчанию она:

        usb@e0002000 {
            compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2";
            status = "okay";
            clocks = <0x1 0x1c>;
            interrupt-parent = <0x4>;
            interrupts = <0x0 0x15 0x4>;
            reg = <0xe0002000 0x1000>;
            phy_type = "ulpi";
            usb-reset = <0x5 0x32 0x0>;
            usb-phy = <0x8>;
            dr_mode = "host";
        };

изменяется:

            dr_mode = "host";

на

           dr_mode = "peripheral";

компилируется в dtb.

Запускается скрипт (назовем его)  enet.sh :

#!/bin/bash                                                                     
                                                                                
modprobe libcomposite.ko                                                        
modprobe u_ether.ko                                                             
modprobe usb_f_rndis.ko                                                         
mount -t configfs none /sys/kernel/config                                       
cd /sys/kernel/config/usb_gadget                                                
mkdir g1                                                                        
cd g1                                                                           
echo "64" > bMaxPacketSize0                                                     
echo "0x200" > bcdUSB                                                           
echo "0x100" > bcdDevice                                                        
echo "0x03FD" > idVendor                                                        
echo "0x0500" > idProduct                                                       
mkdir functions/rndis.rn0                                                       
mkdir configs/c1.1                                                              
ln -s functions/rndis.rn0 configs/c1.1/                                         
echo "ci_hdrc.0" > UDC                                                          
ifconfig usb0 10.10.70.1 netmask 255.255.255.0                                  
ifconfig usb0 up
#end

 

 

и если нет проблем с физикой - все поднимается и взлетает, пингуется и есть обмен по сокетам. (надеюсь, кому-нибудь полезно). Всем спасибо. Проблема решена.

Изменено пользователем Kiryanov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...