Официальный форум СВД Встраиваемые Системы
25 Сентября, 2017, 23:31:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: QNX on SoCFPGA  (Прочитано 431 раз)
unlis
Интересующийся

Сообщений: 5


« : 12 Декабря, 2016, 14:19:24 »

День добрый!

На данный момент разбираюсь с запуском QNX 6.5 на Altera Cyclone V SoC и появилось несколько вопросов, которые тормозят проект.
По данной ссылке http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/AlteraCycloneVSoc я скачал BSP для 6.5 а также образ SD с pre-loader и u-boot, но так как данный образ SD расчитан под отладочную плату Altera, закгрузчики привязаны к конфигурации железа, поэтому задача стоит в правильной сборке и конфигурации всей системы, под другую конфигурацию.
На текущий момент у меня есть готовый и правильно сконфигурированный pre-loader, который в принципе я могу подменить на текущем SD, и возможно даже запущу u-boot, но данное решение не серезно.

И так вопросы:
1. Хотелось бы получить рекомендации по настройке загрузчика (u-boot), а именно, какие операции я должен в нем свершить с бинарным файлом ядра QNX (размещение в памяти, по какому адресу, распаковка, какие параметры передавать)?
2. Какой загрузчик лучше использовать (в рамках рекомендации) в качестве u-boot?
3. Откуда и каким образом я могу получить файловую систему с ее содержимым, которую в дальнешем смогу смонтировать из ядра?

Примечание: использую среду QNX Momentix IDE

С уважением, Илья
Записан
vanAlex
Пользователь

Сообщений: 33



« Ответ #1 : 12 Декабря, 2016, 22:29:40 »

А с чего Вы будете запускать рабочую систему, с SD-шки?

А у меня похожий вопрос к техподдержке: на SABRE тоже сделана загрузка QNX с SD карточки, но на ней только образ. Можно сделать так же и для Altera CycloneV, добавив загрузку .rbf ?
Записан
unlis
Интересующийся

Сообщений: 5


« Ответ #2 : 13 Декабря, 2016, 08:41:11 »

Да, с SD-шки.
Записан
vanAlex
Пользователь

Сообщений: 33



« Ответ #3 : 13 Декабря, 2016, 10:12:06 »

Вопрос, может, не корректный, но почему не с flash'a? Я так понимаю, Вы сделали свой дизайн - а обвязка та же? Меня интересуют ethernet контроллеры?
Записан
unlis
Интересующийся

Сообщений: 5


« Ответ #4 : 13 Декабря, 2016, 10:22:27 »

Пока в целях безопасности. Так как система однозначно будет использоваться в Ethernet сети с резервированием по HSR/PRP, а у данной технологии пока существуют уязвимости.
Дизайн естественно свой.
« Последнее редактирование: 13 Декабря, 2016, 10:24:05 от unlis » Записан
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 667



WWW
« Ответ #5 : 13 Декабря, 2016, 13:06:42 »

И так вопросы:
1. Хотелось бы получить рекомендации по настройке загрузчика (u-boot), а именно, какие операции я должен в нем свершить с бинарным файлом ядра QNX (размещение в памяти, по какому адресу, распаковка, какие параметры передавать)?
2. Какой загрузчик лучше использовать (в рамках рекомендации) в качестве u-boot?
3. Откуда и каким образом я могу получить файловую систему с ее содержимым, которую в дальнешем смогу смонтировать из ядра?

Такого понятия как отдельное бинарное ядро QNX нет. Есть загрузочный образ QNX. Загрузочный образ QNX может быть подготовлен в различных форматах: ELF, бинарный, raw.
Если вы собираетесь использовать загрузчик U-Boot, вероятно один из самых удобных форматов - raw.
Адрес образа в памяти, точка входа и формат (elf, bin, raw) задаются при сборке образа в файле построения. Параметры [image=0xADDR] и [virtual=armle-v7,raw]

Со стороны U-Boot (или любого другого загрузчика) вам необходимо загрузить образ в память платы (0xADDR) любыми возможными способами (считать с SD, загрузить по Ethrenet, флэш и т.д.). Затем необходимо передать управление образу QNX. В случае, если этот образ в формате raw, достаточно передать управление на его начало, например командой go из консоли U-Boot
=> tftp QNX.ifs 0xADDR
=> go 0xADDR


По загрузчикам, пожалуй один из самых удобных. функциональных и легко конфигурируемых это U-Boot. При необходимости можно настроить его как на большую гибкость с возможностью выбора нескольких интерфейсов для загрузки, проверки контрольных сумм и т.п., так и подготовить максимально урезанную версию.
Впрочем, совершенно справедливо и использование любых других подходящих загрузчиков которые способны загрузить образ QNX в память и предать на него управление.


Вариантов файловых систем достаточно много.
Во-первых, сразу после загрузки образа QNX вы получите Read-Only файловую систему образа - все файлы включённые в состав образа будут вам сразу доступны. Это достаточно удобно на первых этапах, поскольку в состав образа можно сразу включить всё небходимое, включая сетевые сервисы.
Затем, уже из образа вы сможете запустить подходящие драйверы для поддерживаемых носителей: MMC/SD, USB, NOR flash, QSPI (перечень полностью зависит от вашей платы и набора драйверов в BSP).
Кроме этого, можно подмонтировать сетевые файловые системы: CIFS, NFS, родная прозрачная сеть QNX Qnet.





Записан

unlis
Интересующийся

Сообщений: 5


« Ответ #6 : 13 Декабря, 2016, 14:46:18 »

День добрый, Владимир!

Благодарю за ответ, тему пока попрошу оставить открытой (если они закрываются на форуме), так как мне на данный момент нужно будет получше познакомиться с u-boot (разбираюсь с описанием переменных окружения для своего проекта).

Но думаю еще будут вопросы, нужно время.
« Последнее редактирование: 13 Декабря, 2016, 14:49:11 от unlis » Записан
vanAlex
Пользователь

Сообщений: 33



« Ответ #7 : 13 Декабря, 2016, 15:05:07 »

Владимир, можно, для бестолковых, ещё раз Smiley  :

-включается железо =>> запускается загрузчик IPL(cold-start) [в данном случае u-boot с u-boot.img] =>> запускается start-up (в данном случае startup-socfpga-cyclone5) и грузит образ =>> запускается boot-script и всё остальное....по списку..
Т.е. я правильно понимаю, что первоначальную инициализацию железа делает u-boot?
Записан
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 667



WWW
« Ответ #8 : 13 Декабря, 2016, 17:24:45 »

День добрый, Владимир!

Благодарю за ответ, тему пока попрошу оставить открытой (если они закрываются на форуме), так как мне на данный момент нужно будет получше познакомиться с u-boot (разбираюсь с описанием переменных окружения для своего проекта).

Но думаю еще будут вопросы, нужно время.

Темы на форуме без острой необходимости (спам) не удаляются, так что если не писать ничего неприличного должна остаться.  Smiley

Обычно имеет смысл внимательно почитать документацию от производителя на данный модуль. Также изучите Release Notes и User Guide на данный QNX BSP.
Не всегда всё подробно разжёвывается, однако ключевые слова по которым можно начинать читать дальше самостоятельно обычно есть.


Владимир, можно, для бестолковых, ещё раз Smiley  :

-включается железо =>> запускается загрузчик IPL(cold-start) [в данном случае u-boot с u-boot.img] =>> запускается start-up (в данном случае startup-socfpga-cyclone5) и грузит образ =>> запускается boot-script и всё остальное....по списку..
Т.е. я правильно понимаю, что первоначальную инициализацию железа делает u-boot?

Они все выполняют свою часть инициализации железа.

Честно говоря не знаком  с данной платой Altera, однако насколько я вижу при загрузке платы должен отрабатывать некий пред-загрузчик (preloader) который уже передаёт управление дальше. Такие пред-загрузчики сугубо аппартно-зависимы и привязаны к конкретному производителю и конкретной плате. Что конкретно он настраивает нужно либо читать в документации либо смотреть в его исходном коде, если он доступен.

После пред-загрузчика управление передаётся на полноценный первичный загрузчик. В данном случае U-Boot хотя теоретически могло-бы быть и что-нибудь другое, например QNX IPL. С одной стороны он достаточно универсален, но тем не менее ему также требуется достаточно сильная привязка к конкретному железу/плате.  Например, он должен знать как инициализировать процессор, память, интерфейсы с которыми будет вестись работа и т.д. и т.п.

Затем U-Boot любыми доступными способами загружает образ образ QNX и передаёт на него управление. Далее выполняется непосредственно модуль startup. startup так-же выполняет необходимую ему часть инициализации, включая процессор, память, контроллер прерываний и т.д. и в конечном счете передаёт управление на ядро QNX.
И вот только когда ядро QNX находится в уже работающем состоянии оно выполняет команды из загрузочного скрипта образа.

Записан

unlis
Интересующийся

Сообщений: 5


« Ответ #9 : 26 Декабря, 2016, 12:24:24 »

День добрый, Владимир!

Мне удалось запустить ядро QNX, но столкнулся с очередной проблемой в виде инициализации и настройки драйверов периферии поставляемых в BSP, а именно нехватает информации с описанием.
К сожалению Release Notes описывает лишь запуск на заранее определенной отладочной плате и информация по настройке драйверов описана в сжатом виде.
Можно ли получить более детальную информацию по драйверам в BSP, либо необходимо самому уже разбираться в исходниках?

С уважением, Илья
Записан
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 667



WWW
« Ответ #10 : 26 Декабря, 2016, 17:30:46 »


По каждому семейству драйверов имеет смысл прочитать соответствующий раздел документации и почитать справку на наиболее простой подходящий драйвер из состава QNX.
Например по флэш-драйверам devf-* стоит начать с раздела документации про файловые системы, справки по devf-generic или devf-ram и утилите flashctl.

Однако это только общая информация по принципам работы.
По конкретным опциям драйвера из BSP стоит почитать его Use файл который идёт и в исходных кодах драйвера, и выводится командой
# use devf-...

Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2017 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 01 Сентября, 2017, 23:21:33