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

 
 
> Petalinux. AXI DMA.
doom13
сообщение Oct 12 2016, 13:56
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Имеется плата zc706 Xilinx SoC ZYNQ-7000 с 2-хядерным ARM Cortex-A9. Пытаюсь разобраться, как работать с AXI DMA если системой управляет Linux (Petalinux). Драйвер AXI DMA изначально присутствует в системе (код драйвера Xilinx из исходников Petalinux и тестовый модуль в архиве), при старте система сообщает:
Цитата
xilinx-dma 40400000.dma: Xilinx AXI DMA Engine driver Probed!!

Содержимое директории /sys/class/dma следующее:
Цитата
root@zynq:/lib/modules/4.0.0-xilinx/extra# cd /sys/class/dma/
root@zynq:/sys/class/dma#
root@zynq:/sys/class/dma#
root@zynq:/sys/class/dma# ls
dma0chan0 dma0chan1 dma0chan2 dma0chan3 dma0chan4 dma0chan5 dma0chan6 dma0chan7 dma1chan0
root@zynq:/sys/class/dma#
, как понял, dma1chan0 соответствует AXI DMA.
Вопрос - как использовать драйвер Xilinx для управления работой AXI DMA (управлять GPIO через sysfs получилось)? Может оно мне и не нужно - убираем драйвер Xilinx из системы, делаем свой char module и всё работает?
Спасибо.






Прикрепленные файлы
Прикрепленный файл  xilinx_dma.rar ( 12.59 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Oct 13 2016, 06:22
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Этот модуль должен быть встроен в ядро, задаётся при конфигурации ядра. Драйвер xilinx_dma с которым пытаюсь разобраться стартует при загрузке системы. axidmatest - это пример использования этого драйвера (наверное) и должен присутствовать в скомпилированном ядре, тут не знаю должен ли запустится автоматом или необходима ручная загрузка.
После компиляции в папке драйвера DMA (../build/linux/kernel/xlnx-4.0/drivers/dma/xilinx) файлы с расширением .ko отсутствуют, есть только .o
В папке проекта build вообще отсутствуют файлы xilinx_dma.ko и axidmatest.ko.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Oct 13 2016, 08:56
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(doom13 @ Oct 13 2016, 09:22) *
Этот модуль должен быть встроен в ядро, задаётся при конфигурации ядра. Драйвер xilinx_dma с которым пытаюсь разобраться стартует при загрузке системы. axidmatest - это пример использования этого драйвера (наверное) и должен присутствовать в скомпилированном ядре, тут не знаю должен ли запустится автоматом или необходима ручная загрузка.
После компиляции в папке драйвера DMA (../build/linux/kernel/xlnx-4.0/drivers/dma/xilinx) файлы с расширением .ko отсутствуют, есть только .o
В папке проекта build вообще отсутствуют файлы xilinx_dma.ko и axidmatest.ko.

давайте по порядку:
1. раз в dma/xilinx лежит "*.o", значит поддержку DMA вы включили в ядро (в менюконфиге: "*" - встроено в ядро "M" - собирать модулем)
2. как вы в ядро встраивали сборку "axidmatest"? обычный путь - положить в дерево драйверов сишник и прописать его в паре файлов
для контроля в корне исходников ядра выполните
Код
cat .config | grep DMA

и смотрите, что у вас там включено..
3. в скрипте сборки ядра есть ли опция modules (возможно у вас отключена сборка *.ko - всякое бывает)

ps у меня нет xilinx, поэтому советы общего плана..

Сообщение отредактировал Jury093 - Oct 13 2016, 08:58
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 13 2016, 10:45
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Jury093 @ Oct 13 2016, 11:56) *
давайте по порядку:
1. раз в dma/xilinx лежит "*.o", значит поддержку DMA вы включили в ядро (в менюконфиге: "*" - встроено в ядро "M" - собирать модулем)
2. как вы в ядро встраивали сборку "axidmatest"? обычный путь - положить в дерево драйверов сишник и прописать его в паре файлов

В меню конфигурации ядра (см. рисунок) выбрал опцию DMA Test client for AXI DMA - в папке build/linux/kernel/xlnx-4.0/drivers/dma/xilinx появляется файл axidmatest.o, если убрать эту опцию, то axidmatest.o отсутствует.

Цитата(Jury093 @ Oct 13 2016, 11:56) *
и смотрите, что у вас там включено..

CODE

andrei@andrei-pc:~/work/zc706/petalinux/zynq/subsystems/linux/configs/kernel$ cat config | grep DMA
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_ZONE_DMA_FLAG=0
CONFIG_DMA_SHARED_BUFFER=y
CONFIG_DMA_CMA=y
CONFIG_SCSI_DMA=y
CONFIG_VIDEOBUF2_DMA_CONTIG=y
CONFIG_SND_DMAENGINE_PCM=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
# DMA Devices
# CONFIG_DW_DMAC_CORE is not set
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
CONFIG_PL330_DMA=y
# CONFIG_FSL_EDMA is not set
CONFIG_XILINX_DMA_ENGINES=y
CONFIG_XILINX_AXIDMA=y
CONFIG_XILINX_DMATEST=y
# CONFIG_XILINX_VDMATEST is not set
CONFIG_XILINX_AXICDMA=y
# CONFIG_XILINX_CDMATEST is not set
# CONFIG_XILINX_DPDMA is not set
CONFIG_XILINX_VDMA=y
# CONFIG_XILINX_ZYNQMP_DMA is not set
# CONFIG_NBPFAXI_DMA is not set
CONFIG_DMA_ENGINE=y
CONFIG_DMA_OF=y
# DMA Clients
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
# CONFIG_DMA_API_DEBUG is not set
CONFIG_HAS_DMA=y


Т.е. всё включено?! И драйвер xilinx_dma и axidmatest.

Цитата(Jury093 @ Oct 13 2016, 11:56) *
3. в скрипте сборки ядра есть ли опция modules (возможно у вас отключена сборка *.ko - всякое бывает)

Если это оно CONFIG_MODULES=y, то есть. Пробовал собрать user module для GPIO - всё работает, есть и my_gpio.o и my_gpio.ko. второй успешно загружается командой insmod.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


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


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