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

linux 2 устройства

Добрый!

Вопрос по поводу DMA: в части логики объявлены 2 устройства AXI DMA, device tree файл обновлен и содержит описание модулей. При запуске видно, что отрабатывает создание только одного устройства (оно потом появляется в /dev). Конфликт связан с тем, что там одно имя на 2 устройства в драйвере. Можно ли как-то обойти эту ситуацию?

Лог ошибки

axidma: axidma_dma.c: axidma_dma_init: 745: DMA: Found 0 transmit channels and 1                                                                                                                                                              receive channels.
axidma: axidma_dma.c: axidma_dma_init: 747: VDMA: Found 0 transmit channels and                                                                                                                                                              0 receive channels.
axidma: axidma_dma.c: axidma_dma_init: 745: DMA: Found 0 transmit channels and 1                                                                                                                                                              receive channels.
axidma: axidma_dma.c: axidma_dma_init: 747: VDMA: Found 0 transmit channels and                                                                                                                                                              0 receive channels.
sysfs: cannot create duplicate filename '/class/axidma'
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.19.0-xilinx-v2019.1 #1
Hardware name: Xilinx Zynq Platform
[<c010f18c>] (unwind_backtrace) from [<c010af0c>] (show_stack+0x10/0x14)
[<c010af0c>] (show_stack) from [<c06949ac>] (dump_stack+0x80/0xa0)
[<c06949ac>] (dump_stack) from [<c0243e00>] (sysfs_warn_dup+0x4c/0x64)
[<c0243e00>] (sysfs_warn_dup) from [<c0243ef8>] (sysfs_create_dir_ns+0xa0/0xc8)
[<c0243ef8>] (sysfs_create_dir_ns) from [<c0698c40>] (kobject_add_internal+0xb0/                                                                                                                                                             0x1f4)
[<c0698c40>] (kobject_add_internal) from [<c0698e30>] (kset_register+0x20/0x3c)
[<c0698e30>] (kset_register) from [<c03e96e4>] (__class_register+0xbc/0x130)
[<c03e96e4>] (__class_register) from [<c03e9798>] (__class_create+0x40/0x70)
[<c03e9798>] (__class_create) from [<c054ff2c>] (axidma_chrdev_init+0x54/0x15c)
[<c054ff2c>] (axidma_chrdev_init) from [<c054ecb4>] (axidma_probe+0xf0/0x14c)
[<c054ecb4>] (axidma_probe) from [<c03ea2e4>] (platform_drv_probe+0x48/0x94)
[<c03ea2e4>] (platform_drv_probe) from [<c03e88fc>] (really_probe+0x1bc/0x280)
[<c03e88fc>] (really_probe) from [<c03e8c48>] (driver_probe_device+0x140/0x158)
[<c03e8c48>] (driver_probe_device) from [<c03e8cec>] (__driver_attach+0x8c/0xc8)
[<c03e8cec>] (__driver_attach) from [<c03e6f74>] (bus_for_each_dev+0x64/0xa0)
[<c03e6f74>] (bus_for_each_dev) from [<c03e7f00>] (bus_add_driver+0x16c/0x1d4)
[<c03e7f00>] (bus_add_driver) from [<c03e94f4>] (driver_register+0xac/0xf0)
[<c03e94f4>] (driver_register) from [<c0102670>] (do_one_initcall+0x70/0x140)
[<c0102670>] (do_one_initcall) from [<c0900e1c>] (kernel_init_freeable+0x18c/0x1                                                                                                                                                             d0)
[<c0900e1c>] (kernel_init_freeable) from [<c06a5d80>] (kernel_init+0x8/0x10c)
[<c06a5d80>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
Exception stack(0xef063fb0 to 0xef063ff8)
3fa0:                                     00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
kobject_add_internal failed for axidma with -EEXIST, don't try to register thing                                                                                                                                                             s with the same name in the same directory.
axidma: axidma_chrdev.c: axidma_chrdev_init: 584: Unable to create a device clas                                                                                                                                                             s.
axidma: probe of amba_pl:axidma_chrdev@1 failed with error -38

image.thumb.png.8e9f15c13f03708fac1f37ecedd45988.png

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


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

Прошу уточнить, что подразумевается под "Конфликт связан с тем, что там одно имя на 2 устройства в драйвере". Если можно, кусочек кода драйвера. А что значит ошибка -38, ее удалось посмотреть как расшифровывается?

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


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

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

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

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

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

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

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

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

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

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