генерация дерева устройств для встроенного Linux на Zedboard

Я работаю над ZedBoard (с SoC серии Zync от Xilinx) и хочу создать дерево устройств для встроенного Linux, который я планирую загрузить на этой Zedboard. Я прошел по двум ссылкам

  1. http://xillybus.com/tutorials/device-tree-zynq-1

  2. http://www.wiki.xilinx.com/Build+Device+Tree+Blob

Они оба дали мне представление о дереве устройств.

Теперь у меня есть два варианта:

  1. У меня есть один готовый файл дерева устройств .dts для Zedboard. Итак, могу ли я использовать это напрямую, ничего не меняя, и добавить только необходимые мне драйверы, и это будет работать?

or

  1. Должен ли я начать с нуля и создать собственный файл дерева устройств .dts. Что я хочу спросить/подтвердить: файл дерева устройств (.dts) не является специфичным для проекта, и содержимое файла .dts будет уникальным для конкретной платы (в нашем случае это ZedBoard). Итак, я могу взять один рабочий файл .dts (как в варианте 1) в качестве базовой платформы для моего проекта и добавить узел моего устройства в этот файл .dts (если его там нет), и он будет работать?

Пожалуйста, предложите и поправьте меня.


person aditya kumar chaudhary    schedule 16.10.2016    source источник
comment
Хорошо написанное ОУ должно состоять из файла .dts для конкретной платы, который включает файлы .dtsi более низкого уровня. Самый нижний файл .dtsi (т. е. один из первых включенных файлов) будет предназначен для самой SoC со всеми необязательными и необязательными периферийными устройствами, объявленными, но отключенными. Вся информация, относящаяся к плате, должна храниться вне этого файла .dtsi уровня SoC и объявляться в самом файле .dts или в файле .dtsi< высокого уровня. /b> файл. Практичность такой организации не очевидна для одной платы, но если у вас было несколько дизайнов плат, использующих один и тот же SoC, то вы могли бы увидеть его преимущества.   -  person sawdust    schedule 17.10.2016


Ответы (1)


Я согласен с комментарием @sawdust. Пожалуйста, найдите его графическое изображение.

Я беззастенчиво скопировал это из презентации здесь. Разметка плат ARMDA

Чтобы ответить на ваш вопрос, вы должны создать свой собственный файл «.dts», который включает в себя все необходимые родительские (т. е. специфичные и необходимые для SOC) файлы dtsi. И скомпилируйте файл «.dts» с помощью компилятора DTC (либо из linux/scripts/dtc/dtc в дереве исходного кода Linux, либо с помощью пакета, такого как «device-tree-compiler»).

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

person Parthiban    schedule 17.10.2016