|
Allwinner A13 и др..., Описание или исходники инициализации USB |
|
|
|
 |
Ответов
|
Jul 17 2018, 11:12
|
Гуру
     
Группа: Свой
Сообщений: 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 Тщательн ее надо.
|
|
|
|
|
Jul 17 2018, 13:04
|
Гуру
     
Группа: Участник
Сообщений: 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 подрубать. И костылей тами много Неа, я не силен в китайском А зачем к таким камням подключать такие дисплеи, когда в них есть хороший дисплейный контроллер RGB24, который к счастью хорошо описан в даташите?? ЗЫ. Кажется начинает доходить вся эта бредовая китайча... Правильно-ли я понимаю, в А13 есть 2 усб порта, первый, т.е. 0 - непойми чего, программнный порт, аля СТМ32, причем как в режиме девайса, так и хоста, как с ним работать - х.з. И какие там порты тоже непонятно, работа с ним похоже только в режиме фифо и т.п. PIO доступа, а вот второй порт т.е. 1 - это только хост, который совместим с EHCI специикацией, сам контроллер соотв. даташиту. В этом случае вопрос, на первый порт я забью болт, т.к. даже вникать не хочу, как этот бред работает, а по второму - как настраивать его PHY ? Либо что-то писать в 0х404, но это вроде, как ОТГ порт, есть еще адрес 0х800, там вроде, как физика порта... Вообщем какой-то трэш  Так, мысли вслух - уж ругаю я МХ6 за тормознутую память и нагрев, как плитки, но надо отдать должное - УСБ порт они сделали хороший, и описали его очень доступно - заработал с пол-оборота, тут - печаль, тоска...
Сообщение отредактировал mantech - Jul 17 2018, 13:33
|
|
|
|
|
Jul 17 2018, 15:29
|
Гуру
     
Группа: Свой
Сообщений: 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)  Вообщем какой-то трэш  Дык сами выбрали такой путь
|
|
|
|
|
Jul 17 2018, 17:11
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(aaarrr @ Jul 17 2018, 18:29)  Может, но... Да, нулевой порт отличается, а-ля STM. DMA там тоже есть, да не суть. Все тут: drivers/usb/host/sw_hci_sunxi.c Нетрудно заметить, что все пишется через 0x404 - это общий интерфейс к PHY. Дык сами выбрали такой путь  Суть в том, что EHCI совсем другая логика работы, через очереди и дескрипторы, а в этом трэше - надо поллить все это и перекачивать все пакеты, которые надо и не надо, соблюдать тайминги и пр... Вообщем ничего приятного... Да, я тоже догадывался, что общий, под какими веществами китаезы это придумывали непонятно, но не суть, а вот что тогда делается в 0х800 ??? И еще вопросик, в догонку, работая с хостом в МХ6ом было сказано, что при подключении высокоскоростных устройств работает контроллер EHCI-совместимый, а низкоскоростных - EHCI аналог ОHCI контроллера с ремаппингом регистров, что я понял очень удобно, т.е. по-сути я работаю с одним контроллером, который выполняет функции скоростного и устаревшего с автопереключением, а как работать с раздельными? Переключение производить "вручную" или он сам переключает и мне надо только выбирать, с каким контроллером работать? Инициализировать их надо оба, как я понял... И что делать с рутхабом? Он там есть вообще, судя по спецификации контроллеров - да, по факту - х.з.
Сообщение отредактировал mantech - Jul 17 2018, 17:20
|
|
|
|
|
Jul 17 2018, 19:59
|
Гуру
     
Группа: Участник
Сообщений: 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
|
|
|
|
Сообщений в этой теме
mantech Allwinner A13 и др... Jul 17 2018, 10:09 __inline__ Вы тут были? https://debugdump.com
Меня вежливо п... Jul 17 2018, 10:54      aaarrr Цитата(mantech @ Jul 17 2018, 22:59) Так-... Jul 17 2018, 20:32       mantech Цитата(aaarrr @ Jul 17 2018, 23:32) Так я... Jul 18 2018, 05:35        mantech Цитата(mantech @ Jul 18 2018, 08:35) Кста... Jul 20 2018, 13:31 Genadi Zawidowski по опыту с Cortex-A9: чтение откуда нельзя вызывае... Jul 20 2018, 19:17 mantech Цитата(Genadi Zawidowski @ Jul 20 2018, 22... Jul 21 2018, 06:23 Genadi Zawidowski Да поставить печать чего-нибудбь внятного и вечный... Jul 21 2018, 10:05 mantech Цитата(Genadi Zawidowski @ Jul 21 2018, 13... Jul 21 2018, 11:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|