accesio / APCI

Currently supported and recommended PCI drivers
6 stars 8 forks source link

Device file is not created after install the driver for PCIe-IDIO-24 card #4

Closed mkaivs closed 1 year ago

mkaivs commented 1 year ago

I'm testing out a PCIe-IDIO-24 Isolated Digital I/O Card, I've followed the instruction and successfully built and installed the driver and all examples.

Here is the output for sudo make install:

make CC="gcc" -C /lib/modules/5.15.0-56-generic/build M=/home/minh/Downloads/APCI modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic'
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
  INSTALL /lib/modules/5.15.0-56-generic/extra/apci.ko
  SIGN    /lib/modules/5.15.0-56-generic/extra/apci.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  /lib/modules/5.15.0-56-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-56-generic'
depmod -A
modprobe -r apci
modprobe apci

However when I run the sample program: pcie-idio-24-irq, I got the following error: Device file could not be opened. Please ensure the iogen driver module is loaded. The program is looking for this device file /dev/apci/pcie_idio_24_0 but it doesn't exist.

Output of: sudo lspci -vn

05:04.0 ff00: 494f:0fd0
    Subsystem: 494f:0e61
    Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 29, NUMA node 0
    Memory at fb100000 (32-bit, non-prefetchable) [size=512]
    I/O ports at c000 [size=256]
    I/O ports at c100 [size=16]
    Capabilities: [40] Power Management version 2
    Capabilities: [48] CompactPCI hot-swap <?>
    Capabilities: [4c] Vital Product Data
    Kernel driver in use: pcie-idio-24
    Kernel modules: gpio_pcie_idio_24, apci

apci.ko is in use.

Output of: sudo dmidecode -t 9

Handle 0x0018, DMI type 9, 17 bytes
System Slot Information
    Designation: Slot4
    Type: x16 PCI Express 3 x16
    Current Usage: In Use
    Length: Long
    ID: 4
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:04:00.0

This is the PCI-E slot that I plug the card in. The OS recognises that's the slot is in use.

JHentges commented 1 year ago

Hello, John Hentges here from Software at ACCES.The apci support for the PCIe-IDIO-24 Family is the most recent hardware family added to the driver, and has not, apparently, made it into the main branch.  Please retest using “ https://github.com/accesio/apci/tree/pcie-idio-support” and let me know.If it does not solve the problem, continue below:What is the output from sudo insmod apci.ko? (Presumably after sudo rmmod apci or reboot)I suspect it worked fine, given the I/O BARs do not report “[disabled]” in your lspci output, but I’d like to check.Also, does dmesg|grep apci show anything suspicious?Does /dev/apci/ exist? If so, what is inside?Let me know if you have any questions.— John.Hentges @.On Dec 30, 2022, at 1:24 PM, mkaivs @.> wrote: I'm testing out a PCIe-IDIO-24 Isolated Digital I/O Card, I've follow the instruction and successfully build and install the driver and all examples. Here is the output for sudo make install: make CC="gcc" -C /lib/modules/5.15.0-56-generic/build M=/home/minh/Downloads/APCI modules_install make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic' arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support INSTALL /lib/modules/5.15.0-56-generic/extra/apci.ko SIGN /lib/modules/5.15.0-56-generic/extra/apci.ko At main.c:160:

However when I run the sample program: pcie-idio-24-irq, I got the following error: Device file could not be opened. Please ensure the iogen driver module is loaded. The program is looking for this device file /dev/apci/pcie_idio_24_0 but it doesn't exist. Output of: sudo lspci -vn 05:04.0 ff00: 494f:0fd0 Subsystem: 494f:0e61 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 29, NUMA node 0 Memory at fb100000 (32-bit, non-prefetchable) [size=512] I/O ports at c000 [size=256] I/O ports at c100 [size=16] Capabilities: [40] Power Management version 2 Capabilities: [48] CompactPCI hot-swap <?> Capabilities: [4c] Vital Product Data Kernel driver in use: pcie-idio-24 Kernel modules: gpio_pcie_idio_24, apci

apci.ko is in use. Output of: sudo dmidecode -t 9 Handle 0x0018, DMI type 9, 17 bytes System Slot Information Designation: Slot4 Type: x16 PCI Express 3 x16 Current Usage: In Use Length: Long ID: 4 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Bus Address: 0000:04:00.0

This is the PCI-E slot that I plug the card in. The OS recognises that's the slot is in use.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

jdolanIV commented 1 year ago

@mkaivs I see the device ID for your card is in the driver. Can you check if there is a device file in /dev/apci that doesn't match the hard coded path in the sample? Unfortunately, I think the problem you are running into is the gpio-pcie-idio-24 driver is taking the card. This driver was not written by ACCES, and we have no control over it. I thought it was an old driver no longer being updated, but if it is being updated for our new cards I will have to see if there's some way we can request its removal.

jdolanIV commented 1 year ago

@mkaivs, I think @JHentges got a little mixed up. I spoke to him on the phone. Please check /dev/apci. If there is no device file there, we will figure how to unload or blacklist the gpio-pcie-idio-24 driver on your distribution. -- Jay

mkaivs commented 1 year ago

Thank you for your reply @JHentges. I've followed your advice and do the following:

git clone https://github.com/accesio/APCI.git
cd APCI
git checkout pcie-idio-support
make

The built fail with the following outputs:

make CC=gcc -C /lib/modules/5.15.0-56-generic/build M=/home/minh/Downloads/APCI modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic'
  CC [M]  /home/minh/Downloads/APCI/apci_fops.o
/home/minh/Downloads/APCI/apci_fops.c: In function ‘ioctl_apci’:
/home/minh/Downloads/APCI/apci_fops.c:94:49: error: macro "access_ok" passed 3 arguments, but takes just 2
   94 |                              sizeof(info_struct));
      |                                                 ^
In file included from ./include/linux/uaccess.h:11,
                 from /home/minh/Downloads/APCI/apci_fops.h:9,
                 from /home/minh/Downloads/APCI/apci_fops.c:1:
./arch/x86/include/asm/uaccess.h:69: note: macro "access_ok" defined here
   69 | #define access_ok(addr, size)     \
      | 
/home/minh/Downloads/APCI/apci_fops.c:93:20: error: ‘access_ok’ undeclared (first use in this function)
   93 |           status = access_ok(VERIFY_WRITE, arg,
      |                    ^~~~~~~~~
/home/minh/Downloads/APCI/apci_fops.c:93:20: note: each undeclared identifier is reported only once for each function it appears in
/home/minh/Downloads/APCI/apci_fops.c:111:64: error: macro "access_ok" passed 3 arguments, but takes just 2
  111 |           status = access_ok (VERIFY_WRITE, arg, sizeof(iopack));
      |                                                                ^
In file included from ./include/linux/uaccess.h:11,
                 from /home/minh/Downloads/APCI/apci_fops.h:9,
                 from /home/minh/Downloads/APCI/apci_fops.c:1:
./arch/x86/include/asm/uaccess.h:69: note: macro "access_ok" defined here
   69 | #define access_ok(addr, size)     \
      | 
/home/minh/Downloads/APCI/apci_fops.c:175:66: error: macro "access_ok" passed 3 arguments, but takes just 2
  175 |              status = access_ok(VERIFY_WRITE, arg, sizeof(iopack));
      |                                                                  ^
In file included from ./include/linux/uaccess.h:11,
                 from /home/minh/Downloads/APCI/apci_fops.h:9,
                 from /home/minh/Downloads/APCI/apci_fops.c:1:
./arch/x86/include/asm/uaccess.h:69: note: macro "access_ok" defined here
   69 | #define access_ok(addr, size)     \
      | 
make[2]: *** [scripts/Makefile.build:297: /home/minh/Downloads/APCI/apci_fops.o] Error 1
make[1]: *** [Makefile:1903: /home/minh/Downloads/APCI] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-56-generic'
make: *** [Makefile:11: all] Error 2

To answer your follow-up questions:

I ran these following commands:

sudo rmmod apci
sudo insmod apci.ko
dmesg|grep apci
ls /dev/apci/

Q: What is the output from sudo insmod apci.ko?

No output.

Q: Does dmesg|grep apci show anything suspicious?

It reports verification failure.

[    8.551412] apci: loading out-of-tree module taints kernel.
[    8.551475] apci: module verification failed: signature and/or required key missing - tainting kernel

Q: Does /dev/apci/ exist?

No, I got this: ls: cannot access '/dev/apci/': No such file or directory

mkaivs commented 1 year ago

Thank you for the clarification @jdolanIV.

Yes, when I run modinfo apci, I got:

filename:       /lib/modules/5.15.0-56-generic/extra/apci.ko
license:        GPL
author:         John Hentges <JHentges@accesio.com>

And when I run modinfo gpio_pcie_idio_24, I got:

filename:       /lib/modules/5.15.0-56-generic/kernel/drivers/gpio/gpio-pcie-idio-24.ko
license:        GPL v2
description:    ACCES PCIe-IDIO-24 GPIO driver
author:         William Breathitt Gray <vilhelm.gray@gmail.com>

I've checked and the /dev/apci folder doesn't exist.

jdolanIV commented 1 year ago

@mkaivs You'll need to switch back to the master branch of APCI. If you still get the access_ok errors they are related to these blocks.

      #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0))
                status = access_ok( arg, sizeof(info_struct));
      #else
                status = access_ok(VERIFY_WRITE, arg,
                               sizeof(info_struct));
      #endif

I'm pretty sure what we need to do is unload or prevent from loading the gpio_pcie_idio_24 driver.

Since it is in the /lib/modules folder you could delete it or move it to a safe location and run depmod -a to remove it from the modules.alias file.

You could hand edit /lib/modules/5.15.0-56-generic/modules.alias to remove the line that tells the kernel to use the gpio_pcie_idio_24 with that particular card.

alias pci:v0000494Fd00000FD0svsdbcsci* gpio_pcie_idio_24

Either of these methods should be good for testing if this is the problem. My expectation is that once the gpio_pcie_idio_24 is prevented from loading the apci driver will be able to claim the card.

-- Jay

mkaivs commented 1 year ago

@jdolanIV

Thank you for the suggestion. I've moved gpio-pcie-idio-24.ko to a safe location and run depmod -a

sudo mv /lib/modules/5.15.0-56-generic/kernel/drivers/gpio/gpio-pcie-idio-24.ko .
depmod -a

I also rebuilt the driver from the main branch:

git clone https://github.com/accesio/APCI.git
cd APCI
make
sudo rmmod apci
sudo make install

The output is:

make CC="gcc" -C /lib/modules/5.15.0-56-generic/build M=/home/minh/Downloads/APCI modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic'
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
  INSTALL /lib/modules/5.15.0-56-generic/extra/apci.ko
  SIGN    /lib/modules/5.15.0-56-generic/extra/apci.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  /lib/modules/5.15.0-56-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-56-generic'
depmod -A
modprobe -r apci
modprobe apci

dmesg | grep apci showed:

[    8.552198] apci: loading out-of-tree module taints kernel.
[    8.562885] apci: module verification failed: signature and/or required key missing - tainting kernel

sudo lspci -vn showed:

05:04.0 ff00: 494f:0fd0
    Subsystem: 494f:0e61
    Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 29, NUMA node 0
    Memory at fb100000 (32-bit, non-prefetchable) [size=512]
    I/O ports at c000 [size=256]
    I/O ports at c100 [size=16]
    Capabilities: [40] Power Management version 2
    Capabilities: [48] CompactPCI hot-swap <?>
    Capabilities: [4c] Vital Product Data
    Kernel driver in use: pcie-idio-24
    Kernel modules: apci

As you can see gpio_pcie_idio_24 no longer shows up.

I also verify that the kernel see the card, by running: lspci -vmm

Slot:   04:00.0
Class:  PCI bridge
Vendor: PLX Technology, Inc.
Device: PEX 8111 PCI Express-to-PCI Bridge
PhySlot:    4
Rev:    21
NUMANode:   0

Slot:   05:04.0
Class:  Unassigned class [ff00]
Vendor: ACCES I/O Products, Inc.
Device: PCIe-IDIO-24 Isolated Digital Input / FET Output Card
SVendor:    ACCES I/O Products, Inc.
SDevice:    PCIe-IDIO-24 Isolated Digital Input / FET Output Card
NUMANode:   0

However, the /dev/apci folder still doesn't exist.

JHentges commented 1 year ago

Hello, John Hentges here again. Jay may have more useful suggestions when he's back on the clock in a few hours, but I thought I'd suggest a diagnostic I've found useful.

Please modify the apci/apci_common.h file by changing the debug level from 0 to 3, rebuild apci.ko, and rmmod apci && insmod apci.ko, then immediately check dmesg|grep apci to see what it says.

John Hentges | Director of Software Engineering and Digital Design | ACCES I/O Products, Inc. http://accesio.com/contact-us @. @.> | (858) 467-5582  | JohnHentges-ACCESIO#7568 on Discord

On 1/3/2023 9:59 AM, mkaivs wrote:

@jdolanIV https://github.com/jdolanIV

Thank you for the suggestion. I've moved |gpio-pcie-idio-24.ko| to a safe location and run |depmod -a|

|sudo mv /lib/modules/5.15.0-56-generic/kernel/drivers/gpio/gpio-pcie-idio-24.ko . depmod -a |

I also rebuilt the driver from the main branch:

|git clone https://github.com/accesio/APCI.git cd APCI make sudo rmmod apci sudo make install |

The output is:

|make CC="gcc" -C /lib/modules/5.15.0-56-generic/build M=/home/minh/Downloads/APCI modules_install make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic' arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support INSTALL /lib/modules/5.15.0-56-generic/extra/apci.ko SIGN /lib/modules/5.15.0-56-generic/extra/apci.ko At main.c:160: - SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69 - SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76 sign-file: certs/signing_key.pem: No such file or directory DEPMOD /lib/modules/5.15.0-56-generic Warning: modules_install: missing 'System.map' file. Skipping depmod. make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-56-generic' depmod -A modprobe -r apci modprobe apci |

|dmesg | grep| apci showed:

|[ 8.552198] apci: loading out-of-tree module taints kernel. [ 8.562885] apci: module verification failed: signature and/or required key missing - tainting kernel |

|sudo lspci -vn| showed:

|05:04.0 ff00: 494f:0fd0 Subsystem: 494f:0e61 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 29, NUMA node 0 Memory at fb100000 (32-bit, non-prefetchable) [size=512] I/O ports at c000 [size=256] I/O ports at c100 [size=16] Capabilities: [40] Power Management version 2 Capabilities: [48] CompactPCI hot-swap <?> Capabilities: [4c] Vital Product Data Kernel driver in use: pcie-idio-24 Kernel modules: apci |

As you can see |gpio_pcie_idio_24| no longer shows up.

I also verify that the kernel see the card, by running: |lspci -vmm|

|Slot: 04:00.0 Class: PCI bridge Vendor: PLX Technology, Inc. Device: PEX 8111 PCI Express-to-PCI Bridge PhySlot: 4 Rev: 21 NUMANode: 0 Slot: 05:04.0 Class: Unassigned class [ff00] Vendor: ACCES I/O Products, Inc. Device: PCIe-IDIO-24 Isolated Digital Input / FET Output Card SVendor: ACCES I/O Products, Inc. SDevice: PCIe-IDIO-24 Isolated Digital Input / FET Output Card NUMANode: 0 |

However, the |/dev/apci| folder still doesn't exist.

— Reply to this email directly, view it on GitHub https://github.com/accesio/APCI/issues/4#issuecomment-1370067517, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKDEW46QNNHYTRPBTUTKOTWQRSIHANCNFSM6AAAAAATNFF6BU. You are receiving this because you were mentioned.Message ID: @.***>

jdolanIV commented 1 year ago

@mkaivs

This means the driver is loaded, but I would expect more output.

[ 8.552198] apci: loading out-of-tree module taints kernel. [ 8.562885] apci: module verification failed: signature and/or required key missing - tainting kernel

Can you send the full dmesg output from boot? I don't know how the lspci output can show just the apci driver and not have created the /dev/ entry. Thanks, -- Jay

mkaivs commented 1 year ago

@jdolanIV & @JHentges

I modified apci_common.h to change A_PCI_DEBUG from 0 to 3, rebuilt the driver, removed the old driver and inserted the newly built driver.

dmesg|grep apci now showed this:

[    8.519162] apci: loading out-of-tree module taints kernel.
[    8.519219] apci: module verification failed: signature and/or required key missing - tainting kernel
[10991.088732] apci: performing init duties

Here is the full log:

dmesg.log

JHentges commented 1 year ago

That's definitely not expected.  Here's what I got with a random card in my system:

dmesg | grep apci [  132.340822] apci: performing init duties [  132.341056] apci: entering probe [  132.341391] apci: dev_id = 0e61. plx_bar = 1 [  132.341394] apci: plx_region.start = 00007000 [  132.341396] apci: plx_region.end   = 000070ff [  132.341398] apci: plx_region.length= 00000100 [  132.341400] apci: plx_region.flags = 00040101 [  132.341404] apci: regions[2].start = b5e00000 [  132.341406] apci: regions[2].end   = b5e0000f [  132.341408] apci: regions[2].length= 00000010 [  132.341410] apci: regions[2].flags = 40200 [  132.341412] apci: irq = 77 [  132.341414] apci: requesting mem region start=b5e00000,len=16 [  132.341449] apci: Is device PCIE : 1 [  132.341451] apci: Requesting Interrupt, 77 [  132.341677] apci: entering apci_class_dev_register [  132.341796] apci: leaving apci_class_dev_register [  132.341798] apci: Added driver 0 [  132.341800] apci: Value of irq is 77 [  132.342068] apci: entering probe [  132.342208] apci: dev_id = 2e50 [  132.342211] apci: [2e50]: regions[0].start = 0000f000 [  132.342213] apci:         regions[0].end   = 0000f0ff [  132.342215] apci:         regions[0].length= 00000100 [  132.342217] apci:         regions[0].flags = 40101 [  132.342219] apci:         regions[1].start = fbe00000 [  132.342220] apci:         regions[1].end   = fbe03fff [  132.342222] apci:         regions[1].length= 00004000 [  132.342224] apci:         regions[1].flags = 40200 [  132.342226] apci:         irq = 78 [  132.342228] apci: requesting io region start=0000f000,len=256 [  132.342232] apci: requesting mem region start=fbe00000,len=16384 [  132.342261] apci: Is device PCIE : 0 [  132.342263] apci: Requesting Interrupt, 78 [  132.342781] apci: entering apci_class_dev_register [  132.342854] apci: leaving apci_class_dev_register [  132.342856] apci: Added driver 1 [  132.342858] apci: Value of irq is 78 You should definitely get something more than "performing init duties".

Let's see if Jay has any ideas.

John.Hentges [@ACCESio.com] Director of Software Engineering On 1/3/23 13:28, mkaivs wrote:

@jdolanIV https://github.com/jdolanIV & @JHentges https://github.com/JHentges

I modified |apci_common.h| to change |A_PCI_DEBUG| from 0 to 3, rebuilt the driver, removed the old driver and inserted the newly built driver.

|dmesg|grep apci| now showed this:

|[ 8.519162] apci: loading out-of-tree module taints kernel. [ 8.519219] apci: module verification failed: signature and/or required key missing - tainting kernel [10991.088732] apci: performing init duties |

Here is the full log:

dmesg.log https://github.com/accesio/APCI/files/10339886/dmesg.log

— Reply to this email directly, view it on GitHub https://github.com/accesio/APCI/issues/4#issuecomment-1370242191, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKDEW65RRGBKUSBEP3TITTWQSKXNANCNFSM6AAAAAATNFF6BU. You are receiving this because you were mentioned.Message ID: @.***>

jdolanIV commented 1 year ago

@mkaivs

I went through the code and your dmesg output, and I don't understand why the probe() is not getting called for the driver. Unfortunately I don't have a PCIe-IDIO-24 card at hand for testing.

The only clue I see that not everything as it should be is this line in the output of the lspci which still seems to show the kernel driver that is part of the kernel source.

Kernel driver in use: pcie-idio-24 //The "pcie-idio-24" comes from drivers/gpio/gpio-pcie-idio-24.c in the kernel source.

But as you say the gpio_pcie_idio_24 no longer shows up in the kernel modules. I see from your dmesg output that you are on a Ubuntu machine. Can you try blacklisting gpio_pcie_idio_24 and pcie-idio-24?

https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules //Don't forget to do the "sudo update-initramfs -u" to actually make it work after you find the proper config files.

I will work with @JHentges to get me a card to test with, or perhaps he can try to reproduce with the exact card at his station.

JHentges commented 1 year ago

That's definitely not expected.  Here's an example of what I get from APCI on my desktop: John.Hentges [@ACCESio.com] Director of Software Engineering On 1/3/23 13:28, mkaivs wrote:

@jdolanIV https://github.com/jdolanIV & @JHentges https://github.com/JHentges

I modified |apci_common.h| to change |A_PCI_DEBUG| from 0 to 3, rebuilt the driver, removed the old driver and inserted the newly built driver.

|dmesg|grep apci| now showed this:

|[ 8.519162] apci: loading out-of-tree module taints kernel. [ 8.519219] apci: module verification failed: signature and/or required key missing - tainting kernel [10991.088732] apci: performing init duties |

Here is the full log:

dmesg.log https://github.com/accesio/APCI/files/10339886/dmesg.log

— Reply to this email directly, view it on GitHub https://github.com/accesio/APCI/issues/4#issuecomment-1370242191, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKDEW65RRGBKUSBEP3TITTWQSKXNANCNFSM6AAAAAATNFF6BU. You are receiving this because you were mentioned.Message ID: @.***>

mkaivs commented 1 year ago

@jdolanIV, @JHentges

After blacklisting gpio_pcie_idio_24, the driver works now.

dmesg | grep apci now showed this:

[    8.506430] apci: loading out-of-tree module taints kernel.
[    8.531020] apci: module verification failed: signature and/or required key missing - tainting kernel
[  264.949471] apci: performing init duties
[  264.950001] apci: entering probe
[  264.950011] apci: dev_id = 0fd0. plx_bar = 1
[  264.950013] apci: plx_region.start = 0000c000
[  264.950014] apci: plx_region.end   = 0000c0ff
[  264.950015] apci: plx_region.length= 00000100
[  264.950016] apci: plx_region.flags = 00040101
[  264.950018] apci: regions[2].start = 0000c100
[  264.950018] apci: regions[2].end   = 0000c10f
[  264.950019] apci: regions[2].length= 00000010
[  264.950020] apci: regions[2].flags = 40101
[  264.950021] apci: irq = 29
[  264.950022] apci: requesting io region start=0000c100,len=16
[  264.950023] apci: Is device PCIE : 1
[  264.950024] apci: Requesting Interrupt, 29
[  264.950040] apci: entering apci_class_dev_register
[  264.950091] apci: leaving apci_class_dev_register
[  264.950092] apci: Added driver 0
[  264.950093] apci: Value of irq is 29

Thank you for your help so far.