1
1

images/orangepi.build: поддержка USB

This commit is contained in:
parent a152378d4e
commit d2f38fbc86
5 changed files with 121 additions and 30 deletions

View File

@ -92,4 +92,5 @@ echo "tftpboot 0x41000000 $image; go 0x41000000" > $TFTP_SERIAL
| RAM | 1GB | + | |
| SMP | 4 CPU cores | + | |
| UART | + | + | |
| USB | + | + | |
| NET | + | + | |

View File

@ -18,6 +18,7 @@
@item контроллер прерываний GICv2
@item контроллер оперативной памяти DDR
@item UART
@item USB (EHCI/OHCI)
@item Ethernet
@endul

View File

@ -20,6 +20,8 @@
@table[width:40:60:width]
@tr Компонент @| Описание
@tr @center @l{devc-ser8250} @endcenter @| Менеджер последовательных 8250-совместимых каналов связи
@tr @center @l{devu-ehci.so} @endcenter @| Драйвер для USB-контроллеров с усовершенствованным интерфейсом хост-контроллера (EHCI)
@tr @center @l{devu-ohci.so} @endcenter @| Драйвер для USB-контроллеров с открытым интерфейсом хост-контроллера (Open Host Controller Interface, OHCI)
@endtable
@hint

View File

@ -15,6 +15,7 @@
@@item Проверки интерфейсов
@@@item Проверка драйвера контроллера UART
@@@item Проверка драйвера контроллера Gigabit Ethernet
@@@item Проверка драйвера контроллера USB
@ -67,15 +68,18 @@ $ make install
@output{shell}
# pidin ar
pid Arguments
1 procnto-smp -vvv -ae
2 slogger -s 16384k
3 pipe
4 devc-ser8250 -e -F -b115200 -c24000000/16 0x01C28000^2,32
5 random -t
6 io-pkt-v4-hc-ksz -dsun8i
4103 sh
4104 pidin ar
pid Arguments
1 procnto-smp -vvv -ae
2 slogger -s 16384k
3 pipe
4 devc-ser8250 -e -F -b115200 -c24000000/16 0x01C28000^2,32
5 io-usb -dehci ioport=0x01c1b000,irq=106 -dohci ioport=0x01c1b400,irq=107
-dehci ioport=0x01c1c000,irq=108 -dohci ioport=0x01c1c400,irq=109
-dehci ioport=0x01c1d000,irq=110 -dohci ioport=0x01c1d400,irq=111
6 random -t
7 io-pkt-v4-hc-ksz -dsun8i
4103 sh
4104 pidin ar
@endoutput
@ -120,27 +124,45 @@ Processor4: 1091551349 Cortex A7 228MHz FPU
1 7 procnto-smp
1 8 procnto-smp
1 9 procnto-smp
1 10 procnto-smp
1 11 procnto-smp
1 12 procnto-smp
1 13 procnto-smp
1 14 procnto-smp
1 16 procnto-smp
2 1 slogger
3 1 pipe
3 2 pipe
3 3 pipe
4 1 devc-ser8250
1 0x20 0 --- @0x804ab30:0x805d1c0
5 1 random
5 2 random
5 3 random
6 1 io-pkt-v4-hc-ksz
6 2 io-pkt-v4-hc-ksz
2 0x72 0 T-- @0x78002d5c:0x818f2c0
6 3 io-pkt-v4-hc-ksz
4103 1 sh
20488 1 pidin
1 10 procnto-smp
1 11 procnto-smp
1 12 procnto-smp
1 13 procnto-smp
1 14 procnto-smp
1 15 procnto-smp
1 17 procnto-smp
2 1 slogger
3 1 pipe
3 2 pipe
3 3 pipe
4 1 devc-ser8250
1 0x20 0 --- @0x804ab6c:0x805d1c0
5 1 io-usb
2 0x6a 0 TP- =PULSE 0x40000008:21 0:0
3 0x6b 0 TP- =PULSE 0x4000000b:21 0:0
4 0x6c 0 TP- =PULSE 0x4000000e:21 0:0
5 0x6d 0 TP- =PULSE 0x40000011:21 0:0
6 0x6e 0 TP- =PULSE 0x40000014:21 0:0
7 0x6f 0 TP- =PULSE 0x40000017:21 0:0
5 2 io-usb
5 3 io-usb
5 4 io-usb
5 5 io-usb
5 6 io-usb
5 7 io-usb
5 8 io-usb
5 9 io-usb
5 10 io-usb
5 11 io-usb
6 1 random
6 2 random
6 3 random
7 1 io-pkt-v4-hc-ksz
7 2 io-pkt-v4-hc-ksz
8 0x72 0 T-- @0x78002d5c:0x818f2c0
7 3 io-pkt-v4-hc-ksz
4104 1 sh
4105 1 pidin
@endoutput
Проверка считается пройденной успешно, если вывод утилиты @l{pidin|pidin ir} содержит информацию об обработчиках прерывания, принадлежащих выполняемым процессам, в формате
@ -265,4 +287,61 @@ round-trip min/avg/max = 0/0/0 ms variance = 0 ms^2
Проверка считается выполненной успешно, если все 3 пакета были успешно получены (процент потерь равен нулю).
@group bsp_usb
Для работы с контроллером интерфейса USB используется драйвера @l{devu-ehci.so}, @l{devu-ohci.so} и менеджер ресурсов @l{io-usb}. В составе загрузочного образа драйвер запускается автоматически. Для вывода информации о доступных интерфейсах выполнить команду @l{usb}.
В случае успешного запуска драйвера в директории `/dev/` будет создано устройство @c io-usb.
@output{shell}
# ls /dev/io-usb
devu-ehci.so devu-ohci.so io-usb
@endoutput
Для проверки функционирования драйвера UART подключить ПМ к ПК через преобразователь по USB в один из разъемов и запустить терминальную программу @a minicom. В последовательном или удалённом терминале выполнить следующую команду:
@output{shell}
# usb
@endoutput
Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:
@output{shell}
USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 1 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 2 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 3 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 4 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 5 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
@endoutput
После подключения должно появиться новое устройство:
@output{shell}
# usb
USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
Device Address : 1
Vendor : 0x8564 (JetFlash)
Product : 0x1000 (Mass Storage Device)
Class : 0x00 (Independent per interface)
USB 1 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 2 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 3 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 4 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 5 (OHCI) v1.10, v1.01 DDK, v1.01 HCD
@endoutput
@prev{./00-UserGuide.html|table_of_articles||11}

View File

@ -48,6 +48,14 @@
waitfor /dev/ser1
reopen /dev/ser1
#######################################################################
## USB Host driver
#######################################################################
display_msg Starting USB host driver...
io-usb -dehci ioport=0x01c1b000,irq=106 -dohci ioport=0x01c1b400,irq=107 -dehci ioport=0x01c1c000,irq=108 -dohci ioport=0x01c1c400,irq=109 -dehci ioport=0x01c1d000,irq=110 -dohci ioport=0x01c1d400,irq=111
waitfor /dev/io-usb/io-usb 4
waitfor /dev/io-usb/devu-ehci.so 4
waitfor /dev/io-usb/devu-ohci.so 4
#######################################################################
## These env variables are inherited by all the programs which follow