mantech 53 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба 2 часа назад, GenaSPB сказал: Хост-стек ST с контроллером EHCI работает много недель уже... Я в курсе, спрашивал про доработки в плане OHCI и работу с хабами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба OHCI пока не затаскивал. Поддержка хаба была, но с единственным устройством за ним. На 157-м тестировалось, на 113-м нет. Нотификации от хаба пока не поддерживаются (енумерация при запуске только или перевтыкании хаба). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба 4 часа назад, GenaSPB сказал: Поддержка хаба была, но с единственным устройством за ним. Это с какого времени? Версия полуторамесячной давности этого еще не умела... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба Год как... на 113 не тестировал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба 44 минуты назад, GenaSPB сказал: на 113 не тестировал К сожалению не работает, скажу сразу, тестировал... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба Раз есть возможность протестировать... Vid/pid хаба определяется? Порты хаба видны? Поставить в usbh_conf.h параметр debug level в 3. У меня хабов под рукой нет пока. А с usb3 хабами проблема не только на аллвиннер но и на виндовс. Изменено 1 сентября, 2022 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба 14 hours ago, GenaSPB said: Представьте себе... это написано в даташите И где именно там об этом написано? Смотрел всю секцию SPI в даташите на V3s, заявлений о том, что нужно ждать обнуления 31-го бита в регистре команд не встретилось. Кроме того, обнаружился ещё тот факт, что после опускания/поднятия сигнала на линии SPI_SS, иногда нужна задержка (хотя бы на 1 мкс), без неё регистры SX1278 читаются верно раз через раз. Просмотрел все регистры SPI управления задержкой, не нашёл битовых полей, которые бы вставляли дополнительные такты ожидания после манипуляций с SPI_SS. Пришлось задержку вручную поставить через таймер. Немного ущербный SPI хост у V3s выходит. У того же TMS320C6745 куча настроек SPI-хоста, в том числе - и вставка определённого числа тактов после выставления уровня на линии SPI_SS. Изменено 1 сентября, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 1 сентября, 2022 Опубликовано 1 сентября, 2022 · Жалоба Я про даташит на 113й. Вы управляете ss через spi или gpio? Попробуйте после выдачи ууюправления прочитать соответствующий регистр. Или выполнить dsb. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба 37 minutes ago, GenaSPB said: Вы управляете ss через spi или gpio? Через SPI, но в ручном режиме (потому что требуется передать больше 1 байта): void spi_select(void) { u32 val; val = read32(SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x0 << 7); write32(SPI_TCR, val); } void spi_deselect(void) { u32 val; val = read32(SPI_TCR); val &= ~((0x3 << 4) | (0x1 << 7)); val |= ((0 & 0x3) << 4) | (0x1 << 7); write32(SPI_TCR, val); } 37 minutes ago, GenaSPB said: Попробуйте после выдачи ууюправления прочитать соответствующий регистр. Или выполнить dsb. Попробовал. Оба способа работают, задержка в 1 мкс более не нужна: (void)read32(SPI_TCR); #define dsb() asm volatile ("mcr p15, 0, %0, c7, c10, 4" : : "r" (0)) Как можно это объяснить (что с DSB и чтением регистра SPI корректно работает) ? Изменено 1 сентября, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба 6 часов назад, GenaSPB сказал: Vid/pid хаба определяется? Порты хаба видны? После небольшого "подкручивания" стека стали видны. При подкл. устройства в хаб идет эвент, но дальше тишина. Нет даже попыток энумерации. Изменено 1 сентября, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба INTERRUPT ENDPOINT я не реализовал нормально. Потому евенты и не работают. Но при старте с хабом должно работать. Традиционный вопрос что подкрутили. 4 hours ago, repstosw said: Как можно это объяснить (что с DSB и чтением регистра SPI корректно работает) ? . Изменение сигнала должный дойти до выводов - что-то с очередью на шине - оба метода позволяют дождаться конца операции. DSB в многозадачной среде кажется более грубым способом. Изменено 1 сентября, 2022 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 1 сентября, 2022 Опубликовано 1 сентября, 2022 · Жалоба За неимением второй свободной платы с V3s, снова вернулся к плате с T113-s3 (Mango Pi MQ-Dual), и с большим сожалением обнаружил, что выводы SPI не выведены на "расчёску", как это сделано на плате с V3s (Lichee Zero Sipeed). Придётся подпаивать проводами с контактных площадок SPI Flash(которая к счастью, не установлена). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба 1 час назад, GenaSPB сказал: Традиционный вопрос что подкрутили. Разкомментировал функции в файле-драйвере хаба)) Изменено 1 сентября, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба On 9/1/2022 at 5:37 AM, repstosw said: Как можно это объяснить (что с DSB и чтением регистра SPI корректно работает) ? уже обсуждали прямо в этой ветке в Linux для гарантированной очередности используют readl/write, в случае armv7 config ARM_DMA_MEM_BUFFERABLE = y поэтому перед запистью в регистры вставляется dsb() https://elixir.bootlin.com/linux/latest/source/arch/arm/include/asm/io.h#L292 https://elixir.bootlin.com/linux/latest/source/arch/arm/include/asm/io.h#L167 https://elixir.bootlin.com/linux/latest/source/arch/arm/include/asm/barrier.h#L66 https://elixir.bootlin.com/linux/latest/source/arch/arm/include/asm/barrier.h#L58 но некоторые предпочитают каждый раз получать граблями по лбу и наступают - "так они же другие!" Изменено 1 сентября, 2022 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 1 сентября, 2022 Опубликовано 1 сентября, 2022 (изменено) · Жалоба 50 minutes ago, mantech said: Разкомментировал функции в файле-драйвере хаба)) Традиционная просьба прислать Ваш вариант... Атрибуты mmu страниц strongly ordered для I/O не освобождают от нужды делать после записи чтение или DSB Изменено 1 сентября, 2022 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться