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

Heterogeneous Computing Concepts

Приветствую.

Разбираюсь как правильно строить систему для Zynq Ultrascale+ относительно части PS (какое ПО должно крутиться на каких ядрах). Предполагалось, что будет использоваться либо Bare Metal, либо RTOS на всех ядрах (A53 и R5). Потестил работу двух FreeRTOS (FreeRTOS + Bare Metal) на двух A53 (или A53 + R5) ядрах.

Смущает то, что все доки Xilinx описывают работу Linux в SMP mode на всех ядрах A53 и RTOS или Bare Metal на ядрах R5 в AMP mode, где OpenAMP и Xilinx Libmetal используются для общения между Linux (A53) и RTOS/Bare Metal (R5). Еще в доке ug1228 нахожу:

If the Cortex-A53 processors are operated independently, each running different

system software without a common OS or hypervisor between them, they too would be

considered as having an asymmetrical relationship to one another. More specifically,

they would be said to be running in “unsupervised” AMP mode, indicating that there is

no single software coordinating the operation of the Cortex-A53 processors. Note,

however, that due to the complexities of a supervised AMP configuration on the

Cortex-A53 processors, this is neither a recommended nor a Xilinx-supported

configuration for the APU

 

Что посоветуете:

1. Пойти по описанному пути - нажить себе проблем? Все драйвера для межпроцессорных коммуникаций вручную?

2. Правильный подход - только Linux на A53 и RTOS/Bare Metal на R5-х? Далее OpenAMP для взаимодеиствия.

3. Как вариант использовать Xen hypervisor если очень хочется совместно с Linux крутить на A53 RTOS/Bare Metal приложения (но тут что-то совсем жесть получается)?

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


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

Приветствую.

Разбираюсь как правильно строить систему для Zynq Ultrascale+ относительно части PS (какое ПО должно крутиться на каких ядрах). Предполагалось, что будет использоваться либо Bare Metal, либо RTOS на всех ядрах (A53 и R5). Потестил работу двух FreeRTOS (FreeRTOS + Bare Metal) на двух A53 (или A53 + R5) ядрах.

Смущает то, что все доки Xilinx описывают работу Linux в SMP mode на всех ядрах A53 и RTOS или Bare Metal на ядрах R5 в AMP mode, где OpenAMP и Xilinx Libmetal используются для общения между Linux (A53) и RTOS/Bare Metal (R5). Еще в доке ug1228 нахожу:

 

 

Что посоветуете:

1. Пойти по описанному пути - нажить себе проблем? Все драйвера для межпроцессорных коммуникаций вручную?

2. Правильный подход - только Linux на A53 и RTOS/Bare Metal на R5-х? Далее OpenAMP для взаимодеиствия.

3. Как вариант использовать Xen hypervisor если очень хочется совместно с Linux крутить на A53 RTOS/Bare Metal приложения (но тут что-то совсем жесть получается)?

 

Мы собираемся идти по вариату 2. Читать меньше :)

Шесть месяцев на весь проект.

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


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

Мне этот вариант (2) тоже больше нравится, но люди сомневаются. Пока затестил три Bare Metal приложения. На A53_0 и A53_1 крутятся приёмники IPI Interrupts, на R5_0 передатчик, отправляет IPI поочерёдно на оба ядра A53 (использовал либу для IPI из BSP). Вроде бы всё работает и не понятно, почему Xilinx не рекомендуют данный вариант, может есть какие-то подводные камни и пока ещё плохо разобрался в вопросе?

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


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

Мне этот вариант (2) тоже больше нравится, но люди сомневаются...

Так а какая именно аргументация этих сомнений ?

 

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


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

Так а какая именно аргументация этих сомнений ?

Типо операционка не Real-Time и мало ли как оно там работает (сторонний, неконтролируемый код) :)

 

И ещё вопрос: можно ли без использования всяких Hypervisor ограничить OS Linux на использование двух A53-х ядер?

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


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

Не рекомендуется, т.к. скорее всего никто не тестировал со 100% покрытием.

Вот недавно нашелся глюк на Zynq-7000, а ему уже сто лет в обед.

https://www.xilinx.com/support/answers/47484.html

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


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

Не рекомендуется, т.к. скорее всего никто не тестировал со 100% покрытием.

Вот недавно нашелся глюк на Zynq-7000, а ему уже сто лет в обед.

https://www.xilinx.com/support/answers/47484.html

А что Вы можете сказать по поводу, если каждое ядро крутит свой Bare Metal или FreeRTOS? На первый взгляд всё работает, но может быть есть нюансы?

Опять же, в доках Xilinx такой режим не рекомендуют использовать. Почему?

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


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

Что-то у меня есть воспоминание, что на A53 нету hardware virtualization, оно появилось только на A72.

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


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

Необходимость использования линукса на цинках для меня связана только с применением периферии, для которой в ядре есть готовые драйвера, а ее прямое использование грозит написанием большого объема кода. На сей момент это HD/SSD на SATA и PCIe, а так же различная внешняя периферия на USB и PCIe. Ну или когда цинк должен стать фактически ПК с полноценной ОС, дисплеем (+ GPU 3D на ультрацинке) и контролерами ввода команд оператором. Все остальные задачи решаются грамотным распределением "обязанностей" между ПЛИС и ЦПУ. До использования 2-го ядра арм-а у меня дело так и не дошло, хотя иногда казалось что уже пора.

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

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


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

1 hour ago, fguy said:

До использования 2-го ядра арм-а у меня дело так и не дошло

Т.е. ваш Linux крутится на одном ядре

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


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

11 minutes ago, doom13 said:

Т.е. ваш Linux крутится на одном ядре

до использования линукса дело еще не доходило, а для "прямого" программирования хватает пока и одного ядра - чаще всего это настройка и управление ядрами по командам с RS или Ethernet - все остальное делает плис

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


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

Приветствую.
Нужен совет по реализации загрузчика для ZynqMP.
На данный момент всю систему разруливает FreeRTOS на A53 #0. Далее будут задействованы ещё одно A53 и одно R5 (возможно все) c BareMetal или FreeRTOS. Удалённое обновление ПО по Ethernet (TFTP server) и запись в QSPI, тут вроде всё просто.
Ещё думаю над возможностью в целях отладки реализовать загрузку в RAM (PS DDR) и тут вопросы. Может попробовать как-то использовать u-boot, флэху писать он умеет, грузить RAM тож умеет (вопрос только как быть, если загрузили прошивки под разные ядра, как их тут стартануть) или писать свой загрузчик? Но тут тот же вопрос, прошивки разложили, как их все стартануть?
Спасибо.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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