реклама на сайте
подробности

 
 
> Allwinner A13 и др..., Описание или исходники инициализации USB
mantech
сообщение Jul 17 2018, 10:09
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Приветствую.

Мозги сломал об инициализацию УСБ хоста на данных камнях, доки кот наплакал, в исходниках линукса противоречащие даташиту и здравому смыслу функции.
В качестве примера - запись в регистры PHY производится по адресу базовый адрес контроллера+0x404, притом, как в даташите - это регистр OHCI !!! Как это работает - наверно волшебство...

Может кто ковырял это дело и есть какие-то соображения, буду признателен.

Особенно интересует, как инициализировать Host PHY... В baremetal, разумеется rolleyes.gif

Сообщение отредактировал mantech - Jul 17 2018, 10:14
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 17 2018, 11:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(mantech @ Jul 17 2018, 13:09) *
В качестве примера - запись в регистры PHY производится по адресу базовый адрес контроллера+0x404, притом, как в даташите - это регистр OHCI !!!

Код
USB_HCI0              0x01C14000
SW_PA_USB0_IO_BASE    0x01c13000

Тщательнее надо.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 17 2018, 13:04
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(aaarrr @ Jul 17 2018, 14:12) *
Код
USB_HCI0              0x01C14000
SW_PA_USB0_IO_BASE    0x01c13000

Тщательнее надо.


Из даташита:
USB OTG 0x01C1 3000---0x01C1 3FFF 4K
USB HCI 0x01C1 4000---0x01C1 4FFF 4K

Т.е. у них 0й порт не может работать в режиме хоста?? Не может такого быть, а если может, то в нем должно быть то же самое, что и в 1м + регистры, которые работают в режиме девайса, поэтому адрес 0х404 все-равно будет принадлежать OHCI 0.
Или там совсем все "по турецки" сделано??? Опять-же по этому в даташитах ни слова...

Цитата(__inline__ @ Jul 17 2018, 13:54) *
Вы тут были?
А ответов они не дали, потому что не умеют LCD по i8080 к v3s подрубать. И костылей тами много


Неа, я не силен в китайском biggrin.gif

А зачем к таким камням подключать такие дисплеи, когда в них есть хороший дисплейный контроллер RGB24, который к счастью хорошо описан в даташите??


ЗЫ. Кажется начинает доходить вся эта бредовая китайча... Правильно-ли я понимаю, в А13 есть 2 усб порта, первый, т.е. 0 - непойми чего, программнный порт, аля СТМ32, причем как в режиме девайса, так и хоста, как с ним работать - х.з. И какие там порты тоже непонятно, работа с ним похоже только в режиме фифо и т.п. PIO доступа, а вот второй порт т.е. 1 - это только хост, который совместим с EHCI специикацией, сам контроллер соотв. даташиту.
В этом случае вопрос, на первый порт я забью болт, т.к. даже вникать не хочу, как этот бред работает, а по второму - как настраивать его PHY ? Либо что-то писать в 0х404, но это вроде, как ОТГ порт, есть еще адрес 0х800, там вроде, как физика порта... Вообщем какой-то трэш crying.gif

Так, мысли вслух - уж ругаю я МХ6 за тормознутую память и нагрев, как плитки, но надо отдать должное - УСБ порт они сделали хороший, и описали его очень доступно - заработал с пол-оборота, тут - печаль, тоска...

Сообщение отредактировал mantech - Jul 17 2018, 13:33
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 17 2018, 15:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(mantech @ Jul 17 2018, 16:04) *
Т.е. у них 0й порт не может работать в режиме хоста??

Может, но...

Цитата(mantech @ Jul 17 2018, 16:04) *
ЗЫ. Кажется начинает доходить вся эта бредовая китайча... Правильно-ли я понимаю, в А13 есть 2 усб порта, первый, т.е. 0 - непойми чего, программнный порт, аля СТМ32, причем как в режиме девайса, так и хоста, как с ним работать - х.з. И какие там порты тоже непонятно, работа с ним похоже только в режиме фифо и т.п. PIO доступа, а вот второй порт т.е. 1 - это только хост, который совместим с EHCI специикацией, сам контроллер соотв. даташиту.

Да, нулевой порт отличается, а-ля STM. DMA там тоже есть, да не суть.

Цитата(mantech @ Jul 17 2018, 16:04) *
В этом случае вопрос, на первый порт я забью болт, т.к. даже вникать не хочу, как этот бред работает, а по второму - как настраивать его PHY ? Либо что-то писать в 0х404, но это вроде, как ОТГ порт, есть еще адрес 0х800, там вроде, как физика порта...

Все тут:
drivers/usb/host/sw_hci_sunxi.c

Нетрудно заметить, что все пишется через 0x404 - это общий интерфейс к PHY.

Цитата(mantech @ Jul 17 2018, 16:04) *
Вообщем какой-то трэш

Дык сами выбрали такой путь sm.gif
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 17 2018, 17:11
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(aaarrr @ Jul 17 2018, 18:29) *
Может, но...


Да, нулевой порт отличается, а-ля STM. DMA там тоже есть, да не суть.


Все тут:
drivers/usb/host/sw_hci_sunxi.c

Нетрудно заметить, что все пишется через 0x404 - это общий интерфейс к PHY.


Дык сами выбрали такой путь sm.gif


Суть в том, что EHCI совсем другая логика работы, через очереди и дескрипторы, а в этом трэше - надо поллить все это и перекачивать все пакеты, которые надо и не надо, соблюдать тайминги и пр... Вообщем ничего приятного...

Да, я тоже догадывался, что общий, под какими веществами китаезы это придумывали непонятно, но не суть, а вот что тогда делается в 0х800 ???

И еще вопросик, в догонку, работая с хостом в МХ6ом было сказано, что при подключении высокоскоростных устройств работает контроллер EHCI-совместимый, а низкоскоростных - EHCI аналог ОHCI контроллера с ремаппингом регистров, что я понял очень удобно, т.е. по-сути я работаю с одним контроллером, который выполняет функции скоростного и устаревшего с автопереключением, а как работать с раздельными? Переключение производить "вручную" или он сам переключает и мне надо только выбирать, с каким контроллером работать? Инициализировать их надо оба, как я понял...

И что делать с рутхабом? Он там есть вообще, судя по спецификации контроллеров - да, по факту - х.з.

Сообщение отредактировал mantech - Jul 17 2018, 17:20
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 17 2018, 18:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(mantech @ Jul 17 2018, 20:11) *
Да, я тоже догадывался, что общий, под какими веществами китаезы это придумывали непонятно, но не суть, а вот что тогда делается в 0х800 ???

Три почти одинаковых PHY, один интерфейс - причем тут вещества? В 0x800 ничего не делается, его содержимое просто выводится в дебаг.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 17 2018, 19:59
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(aaarrr @ Jul 17 2018, 21:50) *
Три почти одинаковых PHY, один интерфейс - причем тут вещества? В 0x800 ничего не делается, его содержимое просто выводится в дебаг.


Так-то один ОТГ и один хост, не совсем чтобы одинаковые??

Вот эта функция вызывается при инициализации:

CODE
static void usb_passby(struct sw_hci_hcd *sw_hci, u32 enable)
{
unsigned long reg_value = 0;
unsigned long bits = 0;
static DEFINE_SPINLOCK(lock);
unsigned long flags = 0;

spin_lock_irqsave(&lock, flags);

bits = BIT(10) | /* AHB Master interface INCR8 enable */
BIT(9) | /* AHB Master interface burst type INCR4 enable */
BIT(8) | /* AHB Master interface INCRX align enable */
BIT(0); /* ULPI bypass enable */

reg_value = readl(sw_hci->usb_vbase + SW_USB_PMU_IRQ_ENABLE);

if (enable)
reg_value |= bits;
else
reg_value &= ~bits;

writel(reg_value, sw_hci->usb_vbase + SW_USB_PMU_IRQ_ENABLE);

spin_unlock_irqrestore(&lock, flags);

return;
}


А вот это "sw_hci->usb_vbase + SW_USB_PMU_IRQ_ENABLE" и есть адрес хоста +0х800 ...

В даташите на А13 об этом ни слова, а в V3s - "PHY Interface description..." на стр 390. И как это понимать??

Сообщение отредактировал mantech - Jul 17 2018, 20:04
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 00:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016