[lkml]   [2003]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: PCI lib for 2.4 //kwds: pci, dma, mapping memory, kernel vs. user-space.
    Hi Martin,

    Thanks for your answer.

    % 2 pci.h files %
    I had a look at example code that comes with libpci.a. Actually, that's
    what I had done since that's the only way I may do it.

    I did not yet understand why I find two differents pci.h files, and why
    I cannot use one of them (since my compiler can't link with the lib)...
    Is there a specific way of using the second one, which I did not

    I work on RedHat 8, kernel 2.4.18-14
    - pci.h No 1 is in /usr/include/pci , linked with /usr/include/linux
    >>> the one I can use

    - No 2 is in /usr/src/linux2.4.18-14/include/linux >>> the one I can't
    use, but I'd like to.

    % dma support %
    It should be OK like that, but my driver will have to support dma
    features... and I don't have available functions to do it, since I may
    not use pci.h file Number 2.
    Do I have any other solution?

    % mapping memory %
    It seems I have many(?) ways for mapping memory, depending if the
    driver will be in kernel or user-space:
    - I could use 'ioremap', but it seems to be designed for kernel-driver.
    And that's again the same thing, since I cannot use it. My <asm/io.h>
    file does not support it. (ugh?) I think I should find it here, as all
    documentation I found says that.
    - I may use mmap too.

    % kernel/user-space %
    I have to develop a driver for a card designed for data-acquisition.
    The stream of data will have to be as fast as possible, since the card
    will have to support high data-rates.
    What is the best, do you think, to develop a driver. Should I do it in
    kernel or user-space? I mean, it seems that kernel accesses cost many
    CPU resources, whereas in user-space, I could have better performances
    if kernel accesses are limited...


    Le lundi, 15 déc 2003, à 23:14 Europe/Paris, Peter Chubb a écrit :

    >>>>>> "Damien" == Damien Courouss <Damien> writes:
    > Damien> Hi, Actually, it will be first a user-space driver.
    > Damien> Maybe I wasn't clear:
    > The user-space libpci.a has headers in /usr/include/pci/pci.h
    > Do #include <pci/pci.h> to get at them.
    > On debian, at least, you need the pciutils-dev package.
    > Unfortunately, there are no manual pages (yet?)
    > And *do* look at the example code that comes with libpci.a
    > pci_resource_start() and so on are kernel functions; you get the same
    > info in a different way using libpci.a -- Look at the source of lspci
    > to see what you can do.
    > (In brief:
    > struct pci_access *pacc;
    > struct pci_dev *dev;
    > pacc = pci_alloc();
    > pci_init(pacc);
    > pci_scan_bus(pacc);
    > for (dev = pacc->devices; dev; dev = dev->next)
    > {
    > if (dev->vendor_id == PCI_VENDOR_ID_AAA &&
    > dev->device_id == PCI_DEVICE_ID_AAA_BBB)
    > break;
    > }
    > if (dev == NULL){
    > fprintf(stderr, "No AAA BBB device\n");
    > exit(1);
    > }
    > pciconf = xmalloc(sizeof *pciconf);
    > pciconf->pciconfig.accesstype = PCI_CONFIG;
    > pciconf->pciconfig.devp = dev;
    > pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES |
    > PCI_FILL_IRQ);
    > /*
    > * Get the first 64-bytes of config space
    > */
    > pci_read_block(dev, 0, config, 64);
    > )
    > --
    > Dr Peter Chubb peterc AT
    > The technical we do immediately, the political takes *forever*
    > -
    > To unsubscribe from this list: send the line "unsubscribe
    > linux-kernel" in
    > the body of a message to
    > More majordomo info at
    > Please read the FAQ at

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:59    [W:0.025 / U:1.176 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site