Как добавить узел remoteproc в дерево устройств платы RedPitaya на базе Zynq-7000 - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь запустить RedPitaya в режиме AMP.

Я не нашел много информации о драйвере remoteproc и о том, какие записи ему нужны в источнике дерева устройств.Я нашел этот документ и добавил его в дерево устройств, но мне не очень повезло с работой примеров.Также я обнаружил различные вариации в узле дерева устройств для remoteproc из разных источников, что довольно странно.

Может ли кто-нибудь указать мне направление, в котором я могу прочитать больше о функции AMP в Arm-Cortex-A9 инекоторые могут объяснить некоторые записи в узле dts remoteproc.

Ответы [ 2 ]

1 голос
/ 06 июля 2019

Это я ОП.Мне удалось запустить несколько примеров AMP в PetaLinux на ZedBoard.Процесс описан в Руководство пользователя Libmetal и OpenAMP .Самая важная часть документа называется «Настройка PetaLinux с OpenAMP» на стр. 32 в связанной версии выше.

Существует два шага: поддержка remoteproc в ядре и оставление места для удаленного приложения в конфигурации ядра.Второй шаг - добавление узлов дерева устройств для remoteproc к источнику дерева устройств.

Я сделал видеоурок о том, как это сделать, я думаю, что это объясняет лучше.Вот ссылка: Учебное пособие 07 Асимметричная мультиобработка на ZedBoard (OpenAMP, remoteproc, petalinux)

Я все еще работаю над тем, как скомпилировать собственное приложение для запуска в режиме AMP, какесть проблемы, связанные с памятью, которые я еще не полностью понял.Я буду обновлять ответ, как я понимаю их.Мир вне.Waqar

0 голосов
/ 30 мая 2019

Какие разные источники?Вы говорите об источниках ядра?Запись узла дерева устройств будет зависеть от версии ядра и его фактического драйвера, изменяющегося при изменении в драйвере или подсистеме remoteproc ядра.

ZynqQ-7000 - двухъядерный Cortex A9.Основываясь на кратком чтении документации, рассматриваемый драйвер remoteproc предполагает, что одно ядро ​​работает под управлением Linux, а другое - для решения других задач в реальном времени.mmio-sram описан здесь .Не уверен, о какой конкретной конструкции оборудования ZynqQ говорит документация по привязке дерева устройств.

Чтобы понять строки, вам необходимо понимание virtio и rpmsg, используемых в open-amp и Linux.Vring можно рассматривать как кольцевой буфер, при этом один буфер используется для отправки от ведущего к подчиненному, а другой - от ведомого к ведущему.Каждое vring связывается с прерыванием, которое возникает, когда Master или Slave помещает что-то в vring, а затем хочет сообщить об этом другому концу.

В случае систем на основе Linux, Linux всегда является главным.Для Zynq, поскольку мы используем два A9, это будет межпроцессорное прерывание.Для SoC, таких как NXP iMX7 или Vybrid, прерывания вызываются отдельным периферийным модулем, таким как Messaging Unit для iMX7.

...