Jump to content

    

sonycman

Свой
  • Content Count

    1918
  • Joined

  • Last visited

Community Reputation

0 Обычный

About sonycman

  • Rank
    Любитель
  • Birthday 09/06/1977

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

15205 profile views
  1. Опция активна, но нет не то что фреймбуффера, но и drm (/dev/dri/card0). Наверное, это потому, что не подключены дисплеи?
  2. Ну почему нет - китайцы предоставили всё, что нужно. Наверное, может всплыть какая-то несовместимость по части поддержки стандарта DSI между контроллерами дисплея и процессора? И плохо, что не просто посмотреть, что творится на линиях трансиверов...
  3. STM для своих mp1 камешков не поддерживают FB, только DRM. Это, как я понимаю, из-за наличия GPU, который мне в общем-то и не нужен. В ядре поддержка FB везде включена, но, чтобы он появился в /dev/fb надо, как я понимаю, рабочий драйвер под него? Может быть, подсмотреть у IMX6ULL, но тут пока что сложно для меня будет, наверное. Попробую сначала с drm, а там видно будет...
  4. Да вроде всё есть - и тайминги в даташите панели, и инициализация, и распиновка. Только в линуксе теперь надо разбираться. DRM - это сильно сложнее фреймбуффера?
  5. Ну велосипед тут изобретать не придётся, под линуксом куча готовых драйверов, просто заменю панель, подставлю нужные команды, подредактирую готовое и делов то
  6. Так причем тут DSI, вы что, думаете по тому же SPI или MCU какие-то другие команды будут? Даташит на контроллер просто куцый вот и все.
  7. Похоже, что да: static int jd9852_readid(void) { struct sprd_dsi *dsi = &dsi_device; uint8_t read_buf[4] = {0}; mipi_dsi_lp_cmd_enable(dsi, true); mipi_dsi_set_max_return_size(dsi, 1); mipi_dsi_dcs_read(dsi, 0x04, &read_buf[0], 1);//0x98 mipi_dsi_dcs_read(dsi, 0x04, &read_buf[1], 1);//0x51 mipi_dsi_dcs_read(dsi, 0x04, &read_buf[2], 1);//0x00 pr_info("fae---read id id0=%x,id1=%x,id2=%x\n",read_buf[0],read_buf[1],read_buf[2]); ...
  8. Код инициализации его видели? Так почти все команды используются такие, которых в доке нет. Так что толку от неё... разве что сам протокол DSI неплохо описан
  9. Даже не ожидал, что продавец ответит. Но предоставили даташит на панель. Распиновку узнал Правда, теперь не хватает примера кода инициализации дисплея. Там контроллер JD9852, на него нет полной доки. В принципе в сети нашёл примеры, может и подойдут, хз. Продавец пообещал найти родной код инициализации, буду ждать...
  10. Да нет, тип контроллера приведен, даже модель панели есть, да только толку, когда распиновки нет? Вот она: https://m.aliexpress.ru/item/1005001296440255.html
  11. А кто-нибудь видел дисплей с MIPI интерфейсом на 2.4 или 2.8 дюйма? Такой, чтобы хотя бы распиновка шлейфа была, а то на али они все без распиновки...
  12. STM32MP151

    Думаете, слишком много? Миллисекунд, конечно. Кстати, функция msleep (и ей подобные) работают очень весело в линуксе. В драйвере мак таймаут сброса работает как периодический опрос регистра dma с паузой 10мс (msleep(10)) в цикле 100 раз. При пробуждении ото сна этот таймаут срабатывает идеально за 1 секунду. А вот при загрузке системы, когда много параллельных задач, этот же таймаут растягивается почти на 3 (!) секунды! Заменил msleep на readl_poll_timeout, которая обеспечивает точное время не зависимо от загрузки. Да, не говорите, у них куча различных плат на сайте, по несколько версий уже, а софт сбит из костылей. Железячники, видимо, хорошие, а программисты студенты одни...
  13. STM32MP151

    Был ещё нюанс с этой весёлой связкой - стшный GMAC и атеросовское PHY. Для сброса при инициализации DMA, gmac требует наличия всех клоков, в том числе клока RX от phy. Которого нет, если не вставлен кабель или просто прошло какое-то время. Экономия энергии, мать её за ногу. Тут то ли не подумали ST, то ли Atheros, но фишка не отключаемая с обеих сторон, похоже. Сетевой драйвер устанавливает бит сброса и ждёт, пока он сбросится - а клока RX нет, и через секунду срабатывает таймаут и привет отвал ethernet. Китайцы просто выкинули проверку на таймаут из драйвера - он, как ни странно, работает дальше и так, но иногда плохо и автоматически ресетится через несколько секунд. После того, как я "починил" сброс phy, эта проблема вроде ушла. После сброса он, видимо, подаёт какое-то время клок и мак успевает прогнать инициализацию. Теперь после сна плата просыпается за 150мс, а после глубокого сна (с отключением питания) - за 500 с копейками (долго поднимается USB, возможно, опять китайцы виноваты). Но в USB пока не полезу, ну его нафиг :)
  14. STM32MP151

    Разобрался вроде с тормозами при пробуждении ото сна и заодно решилась проблема отвала сети. Виноват был "прикрученный" через заднее место ethernet phy AR8035. Китайцы почему то вместо допиливания существующего драйвера phy для него, который сразу не заводится, его совсем выкинули, и прикрутили свой патч-код через вызов phy_register_fixup() (аж два микро модуля ядра регистрируют абсолютно одинаковый код!). Но этот фиксап не вызывается после пробуждения ото сна, что приводит к неработоспособности phy и отвалу сети. Выкинул этот китайский код нафиг, подправил драйвер phy и DT (дерево устройств), изменив опцию rgmii на rgmii-id, чтобы активировались задержки клоков, и всё заработало как положено. А ещё китайцы не смогли (или не захотели разобраться, как правильно) добавить пин сброса для этого-же многострадального ethernet phy, из-за чего сброс тоже не работал после пробуждения. Блин - там же в драйвере stmmac есть опция в DT специально для этого! Правда, немного кривая - работала тоже только один раз, но это быстро исправляется.
  15. STM32MP151

    Эта плата (MYD-YA15XC-T) с завода была прошита старой прошивкой (апрельской вроде), которая в стэндбай вообще не могла войти, зависала после команды echo mem > /sys/power/state (или systemctl standby), после чего ресетилась ватчдогом через 30 секунд. Прошил на их последний образ - заработало, значит, исправили какие-то косяки. Но, видимо, не до конца. Хотя уже собрал и прошил последнюю версию загрузчиков и ядра с гитхаба...