реклама на сайте
подробности

 
 
> Магия с модулями ядра под Altera HPS, Не подхватываются драйвера под cycloneV
R6L-025
сообщение Mar 14 2017, 11:24
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Добрый день!
Собственно проблема:
Есть DE0-Nano-SoC, есть задача собрать свое ядро под нее. При этом нужно чтоб там были SPI, I2C, FPGA-manager, Ethernet.
Если взять собранное 3.13 ядро от терасика - то все отлично работает, интерфейсы есть, fpga-mngr позволяет перезаливать прошивку FPGA, сеть есть, все хорошо.
Но, как только начинаю собирать собственное ядро происходит магия. Под одной версией ядра (4.1_15.09.01) работает fpga_mngr, но не работает spi и сеть, под 4.4 работает сеть, но нет ни менеджера, ни spi, под более высокими версиями примерно то же самое.
При этом под нерабочим spi я подразумеваю что он создается как устройство spidev31765.1, но принимать данные упорно не хочет. Да и номер "31765" очень смущает.
(spidev31765.1 появляется если использовать драйвер "snps,dw-spi-mmio", если указывать "snps,dw-apb-ssi", как это делают в socfpga.dtsi, в исходниках ядра - то вообще устройство исчезает, нет ни в /sys/class, ни в /sys/devices)
FPGA_mngr под версиями старше 4.1 попросту исчезает из /dev. Хотя /sys/class есть директория fpga0.
Если собирать вручную ядро 3.13, как у терасика, то все что нужно появляется, но ядро стартует только с прелоадером терасика. Если генерить через bsp-editor или bsp-create-settings - то ядро попросту не стартует после загрузки u-boot.

Ядра из ветки linux-socfpga, для сборки брал конфиги из "socfpga_defconfog" + добавлял поддержку блочных устройств +2Tb для работы ext4.
прелоадер и бутлоадер собирал как описано на rocketboards:
https://rocketboards.org/foswiki/view/Docum...xBeginnerSGuide
https://rocketboards.org/foswiki/view/Docum...CWorkshopSeries

Ни у кого не возникало таких проблем?
на хабре как-то была статья про исчезновения fpga-mngr https://habrahabr.ru/post/267273/, но лично у меня он в исходниках присутствует
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
R6L-025
сообщение Mar 30 2017, 10:54
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



gosu-art, спасибо что ответили
А Вы могли бы поподробней на этом месте
Цитата
Добавляем в /etc/modules i2c-dev
вы собирали подгружаемые модули, или что туда требуется положить?

Спасибо, на счет GPIO надо доки к ядру почитать. Я на скору руку пока сделал прямое управление контроллером GPIO через отображение на память его регистров.
Вы сказали 4.10 ядро, а вы откуда его стягивали, если не секрет?
Я обычно здесь ищу https://github.com/altera-opensource/linux-socfpga. У них, вроде, 4.8 крайняя сборка под socfpga. Или вы из основной ветки брали?

А на счет dts/dtb - у меня тоже генерируемые sopc2dts (хотя на rocketboards именно этот способ рассматривают) криво работают. Более рабочий путь для меня получился как
написано тут: https://rocketboards.org/foswiki/view/Docum...FPGALinuxKernel
На основе файла socfpga_cyclone5_de0.dts, или другого создаем свой, с нужными конфигами, и потом наитивным ядру способом собираем dtb. Так под 4.1 у меня сеть заработала, чего с sopc2dts не случалось.
Как я понял между версиями ядра меняется интерфейс bindings для отдельных модулей, в т.ч. для fpga manager, и собранные наитивным способом dtb будут более адекватными. Хотя spi у меня пока никаким способом не заработал...
P.S. хотя, генерируемый dts из *.sopcinfo может быть полезен тем, что там описана периферия подключенная на шину hps. Из него можно куски покопипастить в собственный dts, это как-то надежнее выглядит sm.gif

Сообщение отредактировал R6L-025 - Mar 30 2017, 10:57
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016