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

 
 
 
Reply to this topicStart new topic
> Отстуствие MSI прерываний в Ubuntu 16.04 с контроллером APIC под управлением UEFI BIOS, MSI прерывания не поступают в ОС
xxxmatrixxx
сообщение Feb 8 2018, 07:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050



Всем добрый день!!!

Уже 3ю неделю бьюсь с прерываниями MSI под Ubuntu 16.04 на компьютерах, где стоит UEFI BIOS - msi прерывания генерируются платой(это видно чипскопом), но ОС их не видит

причем все нормально работает, т.е. прерывания приходят на компьютерах(это видно и в proc/interrupts и то , что вызывается обработчик прерывания), где стоит простой BIOS(не UEFI), как на 32х разрядной, так и на 64х разрядной ОС

пробовал следующее, но это не помогло:

- отключать Secure Boot

- дописал откл и вкл прерываний после регистрации обработчика прерывания:

Код
//MSI
    if (pci_enable_msi(device_mil[minor].pdev) == 0) {
        debug_print("MSI IRQ is %d\n",device_mil[minor].pdev->irq);
        device_mil[minor].irq_num = device_mil[minor].pdev->irq;
        debug_print("MSI DEVICE IRQ is %d\n",device_mil[minor].irq_num);
        debug_print("MSI enabed! \n");
    }
    else
    {
            printk(KERN_ERR"DEV_MIL_DRV_UDx: MSI not enabed! \n");
            pr_err("pci_enable_msi:");
            goto err6;
    }

//IRQ        
    if (request_irq(device_mil[minor].irq_num, (irq_handler_t) irq_handler, IRQF_PROBE_SHARED, (char *)device_mil[minor].dev_name, &device_mil[minor]) != 0) {
        printk(KERN_ERR"DEV_MIL_DRV_UDx: IRQ requesting failed \n");
        pr_err("request_irq:");
        goto err6;
    }
        
    disable_irq(device_mil[minor].irq_num);
    enable_irq(device_mil[minor].irq_num);


- пробовал откл APIC контроллер


вот лог /proc/interrupt после загрузки драйвера и после посылки данных, когда прерывания должны были прийти( PCIe_1553UDx_0 мое устройство):

CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 23 0 0 0 0 0 0 0 IO-APIC 2-edge timer
1: 3 0 0 0 0 0 0 0 IO-APIC 1-edge i8042
5: 0 0 0 0 0 0 0 0 IO-APIC 5-edge parport0
8: 1 0 0 0 0 0 0 0 IO-APIC 8-edge rtc0
9: 0 0 0 0 0 0 0 0 IO-APIC 9-fasteoi acpi
12: 4 0 0 0 0 0 0 0 IO-APIC 12-edge i8042
14: 0 0 0 0 0 0 0 0 IO-APIC 14-fasteoi INT345D:00
16: 0 0 0 0 0 0 0 0 IO-APIC 16-fasteoi idma64.0, i2c_designware.0
17: 611 303 0 0 0 0 0 0 IO-APIC 17-fasteoi idma64.1, snd_hda_intel:card1, i2c_designware.1
20: 0 0 0 0 0 0 0 0 IO-APIC 20-fasteoi idma64.2
121: 753 697 0 362 0 5675 0 2013 PCI-MSI 327680-edge xhci_hcd
314: 13101 0 0 0 4398 0 1686 0 PCI-MSI 376832-edge ahci[0000:00:17.0]
315: 55 0 3506 0 0 522 0 0 PCI-MSI 2097152-edge enp4s0
316: 0 0 0 0 0 0 0 0 PCI-MSI 3145728-edge enp6s0
317: 1213 0 0 0 0 0 0 58559 PCI-MSI 524288-edge nvkm
318: 30 0 0 0 0 0 0 0 PCI-MSI 360448-edge mei_me
319: 703 105 0 0 0 0 0 0 PCI-MSI 514048-edge snd_hda_intel:card0
320: 0 0 0 0 0 0 0 0 PCI-MSI 1572864-edge PCIe_1553UDx_0
NMI: 1 0 0 0 0 0 0 1 Non-maskable interrupts
LOC: 1994714 659098 501525 243498 293273 190401 520489 2272568 Local timer interrupts
SPU: 0 0 0 0 0 0 0 0 Spurious interrupts
PMI: 1 0 0 0 0 0 0 1 Performance monitoring interrupts
IWI: 0 0 0 0 0 0 0 0 IRQ work interrupts
RTR: 6 0 0 0 0 0 0 0 APIC ICR read retries
RES: 1818 1485 603 471 389 302 301 537 Rescheduling interrupts
CAL: 1814 1765 1811 1696 1666 1820 1672 1738 Function call interrupts
TLB: 239 279 281 195 193 393 239 212 TLB shootdowns
TRM: 1 1 1 1 1 1 1 1 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 0 0 0 0 Machine check exceptions
MCP: 3 3 3 3 3 3 3 3 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 0 0 0 0 0 0 Posted-interrupt notification event
PIW: 0 0 0 0 0 0 0 0 Posted-interrupt wakeup event

так же лог загрузки драйвера:
[ 521.782072] DEV_MIL_DRV_UDx: module_start() begin.
[ 521.782088] DEV_MIL_DRV_UDx: Find Device UDx(DEVICE_ID = 0x9472) #1
[ 521.782227] DEV_MIL_DRV_UDx: cdev_init
[ 521.782229] DEV_MIL_DRV_UDx: Memory
[ 521.782332] DEV_MIL_DRV_UDx: Memory
[ 521.782333] DEV_MIL_DRV_UDx: Maska was setted
[ 521.782334] DEV_MIL_DRV_UDx: module_start(): try to allocate DMA buffer.
[ 521.783197] DEV_MIL_DRV_UDx: module_start(): to address = 0xffffa78fc9681000 was written 0xfd000000
[ 521.783199] DEV_MIL_DRV_UDx: module_start(): to address = 0xffffa78fc9681004 was written 0xf
[ 521.783287] DEV_MIL_DRV_UDx: MSI IRQ is 320
[ 521.783288] DEV_MIL_DRV_UDx: MSI DEVICE IRQ is 320
[ 521.783289] DEV_MIL_DRV_UDx: MSI enabed!
[ 521.783322] DEV_MIL_DRV_UDx: IRQ requesting good
[ 521.783325] DEV_MIL_DRV_UDx: dev_type = 0x43
[ 521.783326] DEV_MIL_DRV_UDx: DEVICE CREATE GOOD


вот лог lspci -v после загрузки драйвера:
03:00.0 Communication controller: Device a203:9472 (rev 03)
Subsystem: Device a203:9472
Flags: fast devsel, IRQ 320
Memory at df200000 (64-bit, non-prefetchable) [size=512K]
Capabilities: [40] Power Management version 3
Capabilities: [48] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [58] Express Endpoint, MSI 00
Capabilities: [100] Device Serial Number 00-00-00-00-00-00-00-00

я смотрел, полностью карту регистров, а конкретно регистры, которые отвечают за MSI(cap_id = 0х05), там выставлено ОС все верно

возникала ли у кого такая проблема и как решали вы ее???

буду очень благодарен за любой совет, пока даже не знаю, где копать...
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Feb 13 2018, 00:53
Сообщение #2


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



----------
Go to the top of the page
 
+Quote Post
xxxmatrixxx
сообщение Feb 13 2018, 06:43
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050



Решил проблему, мне данный драйвер передали от другого программиста, дело было в том, что он не разрешал выходить модулю на шину мастером, короче не вызывал функцию pci_master_enable()

всем спасибо
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th April 2024 - 05:41
Рейтинг@Mail.ru


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