Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

2 часа назад, GenaSPB сказал:

Хост-стек ST с контроллером EHCI работает много недель уже...

Я в курсе, спрашивал про доработки в плане OHCI и работу с хабами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

OHCI пока не затаскивал.
Поддержка хаба была, но с единственным устройством за ним. На 157-м тестировалось, на 113-м нет.
Нотификации от хаба пока не поддерживаются (енумерация при запуске только или перевтыкании хаба).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, GenaSPB сказал:

Поддержка хаба была, но с единственным устройством за ним.

Это с какого времени? Версия полуторамесячной давности этого еще не умела...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 минуты назад, GenaSPB сказал:

на 113 не тестировал 

К сожалению не работает, скажу сразу, тестировал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз есть возможность протестировать...

Vid/pid хаба определяется? Порты хаба видны?

Поставить в usbh_conf.h параметр debug level в 3.

У меня хабов под рукой нет пока. А с usb3 хабами проблема не только на аллвиннер но и на виндовс. 

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, GenaSPB said:

Представьте себе... это написано в даташите 

И где именно там об этом написано?  Смотрел всю секцию SPI в даташите на V3s, заявлений о том, что нужно ждать обнуления 31-го бита в регистре команд не встретилось.

Кроме того, обнаружился  ещё тот факт, что после опускания/поднятия сигнала на линии SPI_SS, иногда нужна задержка (хотя бы на 1 мкс), без неё регистры SX1278 читаются верно раз через раз.  Просмотрел все регистры SPI управления задержкой, не нашёл битовых полей, которые бы вставляли дополнительные такты ожидания после манипуляций с SPI_SS.  Пришлось задержку вручную поставить через таймер.   Немного ущербный SPI хост у V3s выходит.   :wacko2: У того же TMS320C6745  куча настроек SPI-хоста, в том числе - и вставка определённого числа тактов после выставления уровня на линии SPI_SS.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я про даташит на 113й. 

Вы управляете ss через spi или gpio?

Попробуйте после выдачи ууюправления прочитать соответствующий регистр. Или выполнить dsb.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 корректно работает)  ?

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, GenaSPB сказал:

Vid/pid хаба определяется? Порты хаба видны?

После небольшого "подкручивания" стека стали видны. При подкл. устройства в хаб идет эвент, но дальше тишина. Нет даже попыток энумерации.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

INTERRUPT ENDPOINT я не реализовал нормально. Потому евенты и не работают.
Но при старте с хабом должно работать.
Традиционный вопрос что подкрутили.

4 hours ago, repstosw said:

Как можно это объяснить (что с DSB и чтением регистра  SPI корректно работает)  ?

.
Изменение сигнала должный дойти до выводов - что-то с очередью на шине - оба метода позволяют дождаться конца операции.
DSB в многозадачной среде кажется более грубым способом.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За неимением второй свободной платы с V3s, снова вернулся к плате с T113-s3 (Mango Pi MQ-Dual), и с большим сожалением обнаружил, что выводы SPI не выведены на "расчёску", как это сделано на плате с V3s (Lichee Zero Sipeed).  Придётся подпаивать проводами с контактных площадок SPI Flash(которая к счастью, не установлена).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, GenaSPB сказал:

Традиционный вопрос что подкрутили.

Разкомментировал функции в файле-драйвере хаба))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

но некоторые предпочитают каждый раз получать граблями по лбу и наступают - "так они же другие!"

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

50 minutes ago, mantech said:

Разкомментировал функции в файле-драйвере хаба))

Традиционная просьба прислать Ваш вариант...

Атрибуты mmu страниц strongly ordered для I/O не освобождают от нужды делать после записи чтение или DSB

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...