Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9G45 и high speed USB под линуксом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vin
Коллеги, прошу помощи,

На собственной плате на AT91SAM9G45 имеем проблему с USB EHCI под линуксом:
какое USB 2.0 HS устройство не подключаем, оно сначала регистрируется как ЕНСI, потом через N секунд отваливается, потом пытается снова зарегестрироваться и так далее. После таких нескольких попыток порт бывает зависает на совсем или сваливается на OHCI.

Код
[  299.870000] usb 1-1: new high speed USB device using atmel-ehci and address 2
[  300.020000] usb 1-1: New USB device found, idVendor=04cc, idProduct=1520
[  300.020000] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  300.030000] hub 1-1:1.0: USB hub found
[  300.030000] hub 1-1:1.0: 4 ports detected
[  315.590000] usb 1-1: USB disconnect, address 2
[  315.870000] usb 1-1: new high speed USB device using atmel-ehci and address 3
[  316.020000] usb 1-1: New USB device found, idVendor=04cc, idProduct=1520
[  316.020000] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  316.030000] hub 1-1:1.0: USB hub found
[  316.030000] hub 1-1:1.0: 4 ports detected
...


1. В чем искать причину?
2. Подтвердите, у кого high speed USB таки работает на AT91SAM9G45.


Заранее благодарю, ниже лог загрузки
CODE
[ 0.000000] Linux version 2.6.38 (root@javaserver) (gcc version 4.3.2 (Debian 4.3.2-1.1) ) #18 Fri Apr 1 12:57:51 EEST 2011
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: Atmel AT91SAM9M10G45-EK
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: mem=128M console=ttyS0,115200 root=/dev/mmcblk0p2 rootdelay=2
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Memory: 128MB = 128MB total
[ 0.000000] Memory: 126564k/126564k available, 4508k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xffa00000 - 0xffe00000 ( 4 MB)
[ 0.000000] vmalloc : 0xc8800000 - 0xfee00000 ( 870 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .init : 0xc0008000 - 0xc0023000 ( 108 kB)
[ 0.000000] .text : 0xc0023000 - 0xc030c000 (2980 kB)
[ 0.000000] .data : 0xc030c000 - 0xc032ace0 ( 124 kB)
[ 0.000000] NR_IRQS:192
[ 0.000000] AT91: 160 gpio irqs in 5 banks
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] console [ttyS0] enabled
[ 0.150000] Calibrating delay loop... 199.47 BogoMIPS (lpj=997376)
[ 0.350000] pid_max: default: 32768 minimum: 301
[ 0.350000] Mount-cache hash table entries: 512
[ 0.360000] CPU: Testing write buffer coherency: ok
[ 0.370000] NET: Registered protocol family 16
[ 0.400000] bio: create slab <bio-0> at 0
[ 0.400000] usbcore: registered new interface driver usbfs
[ 0.410000] usbcore: registered new interface driver hub
[ 0.410000] usbcore: registered new device driver usb
[ 0.420000] i2c-gpio i2c-gpio.0: using pins 52 (SDA) and 53 (SCL)
[ 0.420000] at_hdmac at_hdmac: Atmel AHB DMA Controller ( cpy slave ), 8 channels
[ 0.440000] Switching to clocksource tcb_clksrc
[ 0.470000] NET: Registered protocol family 2
[ 0.480000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.480000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.490000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.490000] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.500000] TCP reno registered
[ 0.500000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.510000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.510000] NET: Registered protocol family 1
[ 0.520000] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.530000] msgmni has been set to 247
[ 0.530000] io scheduler noop registered (default)
[ 1.020000] atmel_usart.0: ttyS0 at MMIO 0xfeffee00 (irq = 1) is a ATMEL_SERIAL
[ 1.030000] atmel_usart.1: ttyS1 at MMIO 0xfff8c000 (irq = 7) is a ATMEL_SERIAL
[ 1.030000] atmel_usart.2: ttyS2 at MMIO 0xfff90000 (irq = 8) is a ATMEL_SERIAL
[ 1.040000] atmel_usart.3: ttyS3 at MMIO 0xfff94000 (irq = 9) is a ATMEL_SERIAL
[ 1.050000] atmel_usart.4: ttyS4 at MMIO 0xfff98000 (irq = 10) is a ATMEL_SERIAL
[ 1.070000] brd: module loaded
[ 1.090000] loop: module loaded
[ 1.090000] atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
[ 1.100000] macb macb: invalid hw address, using random
[ 1.110000] KERN: macb_mdio_reset
[ 1.130000] MACB_mii_bus: probed
[ 1.140000] eth0: Atmel MACB at 0xfffbc000 irq 25 (12:2c:02:da:1b:dd)
[ 1.140000] eth0: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=ffffffff:00, irq=-1)
[ 1.150000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.160000] atmel-ehci atmel-ehci: Atmel EHCI UHP HS
[ 1.160000] atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
[ 1.170000] atmel-ehci atmel-ehci: irq 22, io mem 0x00800000
[ 1.190000] atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
[ 1.190000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.200000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.200000] usb usb1: Product: Atmel EHCI UHP HS
[ 1.210000] usb usb1: Manufacturer: Linux 2.6.38 ehci_hcd
[ 1.210000] usb usb1: SerialNumber: atmel-ehci
[ 1.220000] hub 1-0:1.0: USB hub found
[ 1.220000] hub 1-0:1.0: 2 ports detected
[ 1.220000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.230000] at91_ohci at91_ohci: AT91 OHCI
[ 1.230000] at91_ohci at91_ohci: new USB bus registered, assigned bus number 2
[ 1.240000] at91_ohci at91_ohci: irq 22, io mem 0x00700000
[ 1.300000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 1.300000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.310000] usb usb2: Product: AT91 OHCI
[ 1.310000] usb usb2: Manufacturer: Linux 2.6.38 ohci_hcd
[ 1.320000] usb usb2: SerialNumber: at91
[ 1.320000] hub 2-0:1.0: USB hub found
[ 1.330000] hub 2-0:1.0: 2 ports detected
[ 1.330000] usbcore: registered new interface driver libusual
[ 1.340000] usbcore: registered new interface driver usbserial
[ 1.340000] USB Serial support registered for generic
[ 1.350000] usbcore: registered new interface driver usbserial_generic
[ 1.350000] usbserial: USB Serial Driver core
[ 1.360000] USB Serial support registered for FTDI USB Serial Device
[ 1.360000] usbcore: registered new interface driver ftdi_sio
[ 1.370000] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
[ 1.380000] USB Serial support registered for moto-modem
[ 1.380000] usbcore: registered new interface driver moto-modem
[ 1.390000] USB Serial support registered for GSM modem (1-port)
[ 1.390000] usbcore: registered new interface driver option
[ 1.400000] option: v0.7.2:USB Driver for GSM modems
[ 1.400000] atmel_usba_udc atmel_usba_udc: MMIO registers at 0xfff78000 mapped at c881c000
[ 1.410000] atmel_usba_udc atmel_usba_udc: FIFO at 0x00600000 mapped at c8900000
[ 1.420000] at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
[ 1.420000] AT91 Real Time Clock driver.
[ 1.430000] i2c /dev entries driver
[ 1.430000] Linux video capture interface: v2.00
[ 1.430000] usbcore: registered new interface driver uvcvideo
[ 1.440000] USB Video Class driver (v1.0.0)
[ 1.450000] usbcore: registered new interface driver usbhid
[ 1.460000] usbhid: USB HID core driver
[ 1.460000] TCP cubic registered
[ 1.470000] NET: Registered protocol family 17
[ 1.470000] at91_rtc at91_rtc: setting system clock to 2007-01-01 00:00:03 UTC (1167609603)
[ 1.480000] atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 11, 1 slots
[ 1.490000] Waiting 2sec before mounting root device...
[ 1.550000] mmc0: host does not support reading read-only switch. assuming write-enable.
[ 1.560000] mmc0: new high speed SDHC card at address b368
[ 1.570000] mmcblk0: mmc0:b368 NCard 7.46 GiB
[ 1.570000] mmcblk0: p1 p2 p3
Jury093
Цитата(vin @ Apr 18 2011, 20:30) *
2. Подтвердите, у кого high speed USB таки работает на AT91SAM9G45.

использую плату со Starterkit.ru на 9g45 - таких проблем не наблюдаю, USB брелки, USB/SD переходники, USB-PATA, USB-SATA все отлично работают в HS
был интересный прецендент, когда подключил на USB-PATA старенький винт 1.4Г, так при интенсивном обмене он терялся - вылечил более мощным блоком питания.
Я к тому, что попробуйте БП заменить. И глянуть осциллом - все ли с питанием хорошо..
в процессе загрузки:
Код
scsi0 : usb-storage 1-1:1.0
usb 1-2: new high speed USB device using atmel-ehci and address 3
hub 1-2:1.0: USB hub found
hub 1-2:1.0: 4 ports detected
scsi 0:0:0:0: Direct-Access     Hitachi  HTS542580K9SA00  0009 PQ: 0 ANSI: 0
sd 0:0:0:0: [sda] 156301484 512-byte logical blocks: (80.0 GB/74.5 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI disk
EXT3-fs: barriers not enabled
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sda2): warning: maximal mount count reached, running e2fsck is recommended
EXT3-fs (sda2): using internal journal
EXT3-fs (sda2): mounted filesystem with ordered data mode
VFS: Mounted root (ext3 filesystem) on device 8:2.
Freeing init memory: 148K
mmcblk0: retrying using single block read
Adding 136548k swap on /dev/sda3.  Priority:-1 extents:1 across:136548k
sshd (960): /proc/960/oom_adj is deprecated, please use /proc/960/oom_score_adj instead.

Debian GNU/Linux 6.0 armets ttyS0

armets login:

воткнул флешку (через хаб):
Код
usb 1-2.1: new high speed USB device using atmel-ehci and address 5
scsi2 : usb-storage 1-2.1:1.0
scsi 2:0:0:0: Direct-Access     Pretec   02GB             1.00 PQ: 0 ANSI: 2
sd 2:0:0:0: [sdb] 3948544 512-byte logical blocks: (2.02 GB/1.88 GiB)
sd 2:0:0:0: [sdb] Write Protect is off
sd 2:0:0:0: [sdb] Assuming drive cache: write through
sd 2:0:0:0: [sdb] Assuming drive cache: write through
sdb: sdb1 sdb2
sd 2:0:0:0: [sdb] Assuming drive cache: write through
sd 2:0:0:0: [sdb] Attached SCSI removable disk

vin
Jury093, благодарю!

Сравнивая загрузку своей и Вашей платы вижу следующее различие:

У нас
Код
[[    1.150000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.160000] atmel-ehci atmel-ehci: Atmel EHCI UHP HS
[    1.160000] atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
[    1.170000] atmel-ehci atmel-ehci: irq 22, io mem 0x00800000
[    1.190000] atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
[    1.190000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.200000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.200000] usb usb1: Product: Atmel EHCI UHP HS
[    1.210000] usb usb1: Manufacturer: Linux 2.6.38 ehci_hcd
[    1.210000] usb usb1: SerialNumber: atmel-ehci
[    1.220000] hub 1-0:1.0: USB hub found
[    1.220000] hub 1-0:1.0: 2 ports detected
[    1.220000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.230000] at91_ohci at91_ohci: AT91 OHCI
[    1.230000] at91_ohci at91_ohci: new USB bus registered, assigned bus number 2
[    1.240000] at91_ohci at91_ohci: irq 22, io mem 0x00700000
[    1.300000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    1.300000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.310000] usb usb2: Product: AT91 OHCI
[    1.310000] usb usb2: Manufacturer: Linux 2.6.38 ohci_hcd
[    1.320000] usb usb2: SerialNumber: at91
[    1.320000] hub 2-0:1.0: USB hub found
[    1.330000] hub 2-0:1.0: 2 ports detected

т.е. 2 хаба по 2 порта

У Вас
Код
usb 1-2: new high speed USB device using atmel-ehci and address 3
hub 1-2:1.0: USB hub found
hub 1-2:1.0: 4 ports detected

1 хаб на 4 порта.

Как такое может получиться?
Jury093
Цитата(vin @ Apr 19 2011, 12:27) *
1 хаб на 4 порта.
Как такое может получиться?

все очень просто - это отобразился внешний хаб на 4 порта
конфиг следующий - на плате стоят два ЮСБ порта от 9G45, в один напрямую подключен винчестер через USB-SATA, во второй порт воткнут USB hub (4 порта) и флешечку я втыкал в него, в этот же хаб подключаю крысу и клаву
если что-то не так - озвучьте чего желаете увидеть - по возможности попробую изобразить (вечером)..
vin
Цитата(Jury093 @ Apr 19 2011, 10:33) *
все очень просто - это отобразился внешний хаб на 4 порта
конфиг следующий - на плате стоят два ЮСБ порта от 9G45, в один напрямую подключен винчестер через USB-SATA, во второй порт воткнут USB hub (4 порта) и флешечку я втыкал в него, в этот же хаб подключаю крысу и клаву
если что-то не так - озвучьте чего желаете увидеть - по возможности попробую изобразить (вечером)..


вразумел. меня интересует, что пишел голая загрузка при определении портов на 9G45.

По даташиту на 9G45, один порт имеем мультиплексированный (см. вложение).
Нажмите для просмотра прикрепленного файла
Вы EN_UDPHS переопределяли вручную? Если да, то где?

Заранее благодарю.
Jury093
Цитата(vin @ Apr 19 2011, 12:46) *
вразумел. меня интересует, что пишел голая загрузка при определении портов на 9G45.

по возможности - вечером выложу куски лога..

Цитата
По даташиту на 9G45, один порт имеем мультиплексированный (см. вложение).
Вы EN_UDPHS переопределяли вручную? Если да, то где?

если в софтовой части, то брал ванильное ядро, подпиливал под существующую плату - USB ветку вообще не трогал..
Jury093
Цитата(vin @ Apr 19 2011, 12:46) *
вразумел. меня интересует, что пишел голая загрузка при определении портов на 9G45.
Вы EN_UDPHS переопределяли вручную? Если да, то где?

упс.. под рукой ядро только на винчестере, с него все и гружу. но! за ванильность уже поручится не могу..
вот куски логов (1 порт - винчестер, 2 порт - usb-флешка):
CODE
Linux version 2.6.36-rc6 (root@debian) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #417 Thu Feb 3 14:01:27 EST 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: SK-MAT91SAM9G45

bla-bla

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
atmel-ehci atmel-ehci: Atmel EHCI UHP HS
atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
atmel-ehci atmel-ehci: irq 22, io mem 0x00800000
atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 2
at91_ohci at91_ohci: irq 22, io mem 0x00700000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...

bla-bla

usb 1-1: new high speed USB device using atmel-ehci and address 2
mmc0: card lacks mandatory switch function, performance might suffer.
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 SDC 976 MiB
mmcblk0: p1 p2
scsi0 : usb-storage 1-1:1.0
usb 1-2: new high speed USB device using atmel-ehci and address 3
scsi1 : usb-storage 1-2:1.0
scsi 0:0:0:0: Direct-Access Hitachi HTS542580K9SA00 0009 PQ: 0 ANSI: 0
sd 0:0:0:0: [sda] 156301484 512-byte logical blocks: (80.0 GB/74.5 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
scsi 1:0:0:0: Direct-Access Pretec 02GB 1.00 PQ: 0 ANSI: 2
sd 1:0:0:0: [sdb] 3948544 512-byte logical blocks: (2.02 GB/1.88 GiB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI disk
sdb: sdb1 sdb2
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sd 1:0:0:0: [sdb] Attached SCSI removable disk


смотрите питание, помехи, может кварц шалит..
vin
БЛАГОДАРЮ, за лог!

Завтра будет в руках хаб с внешним питанием, попробую через него.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.