Jump to content

    

R6L-025

Свой
  • Content Count

    111
  • Joined

  • Last visited

Community Reputation

0 Обычный

About R6L-025

  • Rank
    Частый гость
  • Birthday 06/13/1991

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1921 profile views
  1. Ну еще есть старый сишный трюк когда после крайнего полезного элемента перечисления вставляется еще один. Т.к. перечисление стартует с 0, то номер этого последнего элемента будет равен количеству всех элементов. Т.е. [Num0, Num1, CounOfNums]. CounOfNums будет равен 2. Что и нужно
  2. Я не под Ubuntu, под Arch с ним работал - иногда после перетыкивания программатора он перестал определятся, тогда помогало перезапустить вручную jtagserver pkill jtagd jtagconfig Помогало. Может еще частоты jtag стоит покрутить. Ну и перенос с одной системы на другую без пересборки... На стабильность прошивки то не должно влиять, но мало-ли что там может из-за этого быть
  3. А нет возможности прокинуть их через PL часть?
  4. Есть под рукой плата Digilent genesysZU, там стоит 4232 камень. Схема На плату упоротая, и куска с ftdi я вообще не нашел. Но судя по FT_prog там 2 uart'а и кроме jtag еще один порт с кастомной конфигурацией. eeprom.bin ftdi_prog_template.xml
  5. Давно дело было, всего не помню, но - когда надо было прописать клок, то обычно не вдавался в детали присвоения имен альетры, а тупо копировал путь из timeQuest или SignalTap. Там в фильтре можно задать маску имени, например, my_pll. В выхлопе программы поиска выбрать соответствующие пути до самих клоков. Не вдаваясь в детали имен
  6. Можно. с IP ядрами так иногда и происходит, что они написаны на verilog, но подключаются к vhdl и т.п. Главное с ширинами портов не перепутать ничего
  7. Например, берем фал *.v сгенеренный megawizrd. Он начинаться будет как-то так: `timescale 1 ps / 1 ps module alterapll_fd ( input wire refclk, // refclk.clk input wire rst, // reset.reset output wire outclk_0, // outclk0.clk output wire locked // locked.export ); Берем имя модуля "alterapll_fd", его порты, и пишем такой instance в твоем top модуле: alterapll_fd alterapll_fd_inst ( .refclk (in_clock ), .rst (in_reset ), .outclk_0 ( ), .locked (out_lock ) ); Имя "alterapll_fd_inst" это имя экземпляра модуля (оно должно быть уникальным, по крайней мере в пределах модуля). Сигналы в скобках должны быть объявлены, и первые два иметь источники. Ну а третий, собственно, выход pll.
  8. Да про ОЗУ то знает. Я имел в виду память доступную по i2c и т.д. Но, как потом понял - fsbl это просто некоторый код для APU/RPU под baremetall. И если позволяет размер исходника (он из TCM, кажется, работает, а она не большая по объему) - то можно что угодно написать. Было бы желание писать самому, или готовые baremetall драйвера для внешней памяти типа i2c/qspi и т.п.
  9. Спасибо, интересная штука - baikal. А Вы его как используете, для сборка метрик производительности? На счет openAMP, libmetal - конечно интересно было бы посмотреть что там не так. Я дней пять убил на то чтоб запустить libmetal-echo из из UG. Не вышло. openAMP как-то сразу заработал, но там, судя по документации ограничение на размер пакета 512 byte. Пока что пришел к тому что забил на эту пару, и сел писать свой драйвер для управления со стороны APU модулем IPI. Но, было бы интересно посмотреть что за баг в openAMP/libmetal
  10. Благодарю! Посмотрю. Вспоминал про openOCD, но не думал что он будет тут работать
  11. UPD: нашел строчку в главе про IPI из TRM про то что да, каналы могут использоваться как и кем угодно, кроме 4х каналов жестко привязанных к PMU. Но почему не работает всеравно не понятно
  12. Всем доброго времени суток! Проблема - надо поднять взаимодействие между ядрами APU и RPU. На первой группе Linux, на второй - freeRTOS. Пробовал запустить example openAMP, залить через remoteproc эльфа - все работает. Но хочется заиспользовать libmetal. А вот тут оказалось все сложнее. Собираю примеры из ug1186 (Libmetal and OpenAMP UG). При попытке запуска приложения тестирования под linux вываливаются ошибки типа "VFIO: No IOMMU group for device". До этого vfio жаловался на отсутствие драйвера reset'a, но получилось подавить это через передачу нужного параметра при загрузке модуля vfio. Есть подозрение что я как-то не так настраиваю IPI в DeviceTree. В UG для приема блоком APU сообщений от RPU применяется 7 канал (адрес 0x3ed40000 выше) IPI модуля. Что мне непонятно, так это то что в документации он помечен как канал PL0, для работы с FPGA. Или же там без особой разницы кто управляет каналами, и можно использовать их по своему усмотрению? Пробовал использовать другие каналы - ничего особенного не изменилось. Никто не сталкивался с такой проблемой? Или может есть рабочие куски deviceTree с которыми нормально это все работает
  13. А через что отлаживаете? Ну, я имею в виду что в качестве дебаг сервера используется под R5 ядрами? Я только xsct понял как приспособить. Ну и вроде как можно TCF agent отдельно прицепить, но это извращение какое-то. А я выкрутился с IDE - перенес нужные проекты под cmake (в vitis максимум сгенерить ld скрипт, и платформенные библиотеки xilinx + freertos линкуемые отдельно к cmake проекту), к нему подключаю кросс-компилятор из состава petalinux.
  14. Да, видел что стрим был, но так руки пока и не дошли до него)
  15. Ну, ATF не собирал, но все остальное и без vitis отлично собирается. FSBL - это просто обычный код под A/R ядро. Кросс-компилятор его вполне себе собирает. Я даж встроил в него тест памяти в самом начале его работы (попросили прикрутить). Без vitis обошлось. PFMU и DTB у меня собирается в petalinux, но, в будущем есть желание от него уйти на чистый yocto/buildroot + отдельно собирать все эти компоненты вместе с ядром и uboot