PCIe -6323 Support

35 views
Skip to first unread message

Sushruth Manchineella

unread,
Oct 7, 2020, 12:35:53 PM10/7/20
to Comedi: Linux Control and Measurement Device Interface
I was wondering if there is any linux drivers for the National Instruments PCIe - 6323 for Linux. I used to work with the PCI - 6229, but recently switched to the PCIe -6323. Comedi is not auto-recognizing the 6323 card, so I was wondering if there was any other way I could get drivers installed for this card on Linux.

Thanks,
Sushruth Manchineella

Der Alte

unread,
Oct 12, 2020, 8:32:11 AM10/12/20
to Comedi: Linux Control and Measurement Device Interface
Hi Sushruth,

http://www.comedi.org/hardware.html doesn't list any *6323* Products.
I would understand it so that a driver for such hardware first has to be written.
Perhaps the card is similar to another that is supported by ni_pcimio or another ni_* driver.

Maybe you just have do add adequate enum-entries and desriptors to
/usr/src/linux/drivers/staging/comedi/drivers/ni_pcimio.c like these ones for a PCIe-6259 board,
of course with the correct parameters for your card, especially the real PCI Device ID.

enum ni_pcimio_boardid {
...
    BOARD_PCIE6259,
...

static const struct ni_board_struct ni_boards[] = {
...
...
    [BOARD_PCIE6259] = {
        .name        = "pcie-6259",
        .n_adchan    = 32,
        .ai_maxdata    = 0xffff,
        .ai_fifo_depth    = 4095,
        .gainlkup    = ai_gain_628x,
        .ai_speed    = 800,
        .n_aochan    = 4,
        .ao_maxdata    = 0xffff,
        .ao_fifo_depth    = 8191,
        .ao_range_table    = &range_ni_M_625x_ao,
        .reg_type    = ni_reg_625x,
        .ao_speed    = 350,
        .has_32dio_chan    = 1,
        .caldac        = { caldac_none },
...

and

static const struct pci_device_id ni_pcimio_pci_table[] = {
...
   { PCI_VDEVICE(NI, 0x717f), BOARD_PCIE6259 },
                                        ^^^^^^^^^^^
...

lspci -nn lists all the devices with Vendor-ID (here: 0x1093 for NI)  and Device-ID.
You have to identify the line for your card and newly create and append such data structs with
BOARD_PCIE6323 instead of BOARD_PCIE6259.

To correctly fill in the new struct ni_board_struct you will likely need the data sheet or specs of your card or driver sources from NI where you can find the register descriptions of the PCIe - 6323.

Ciao, Bernd
Reply all
Reply to author
Forward
0 new messages