mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Nemeth <thomas.nemeth@betatech.fr>
To: linux-kernel@vger.kernel.org
Subject: PCI driver architecture [repost]
Date: Wed, 21 May 2008 15:14:11 +0200	[thread overview]
Message-ID: <200805211514.11584.thomas.nemeth@betatech.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 2958 bytes --]

[sorry - bad previous post]

    Hi!

    I was going to ask a few questions to Greg KH when he told me that
    my questions "look very reasonable for there, as long as I also
    post my code".

    So here is the context: we are developping 2 multi-IO boards at the
    request of our customer and, unfortunately, they asked us to
    develop their driver for Linux 2.4. As they are evaluating the
    possibility to switch to 2.6 in some months I'm writing the driver
    with 2.6 in mind.
    I have already made some basic char drivers for our custom ARM
    systems (GPIO/ADC/FPGA) and even begun a custom ARM-based
    architecture support. I have read, of course, a lot of documentation
    before: LDD2, LDD3 (of course), CodingStyle, How to NOT write a
    device driver, writing portable device drivers, Device Drivers DOs
    and DON'Ts and some other books, web sites and PDF about embedded
    linux.

    These boards will present the user a bunch of IO lines a bit like
    GPIO. Registers are to be mapped into memory. By now the design is
    not complete and we still are discussing if registers will present
    information for all lines (eg: a data register for all lines, an
    interrupt register holding information for all lines...) or 1
    register per line holding the all information related to that line
    (data, interrupt type, interrupt occured...). Anyway, that's not
    really important right now.

    I have already written some code for this driver. As I saw, in the
    FAQ, that I might be well advised to put my code on a website/ftp,
    here it is: http://tnemeth.free.fr/projets/btmio.c


    My questions are the following ones:

    - I use a probe() function that calls request_region() in order to
      have access to the boards' registers. I have called ioremap() on
      the requested region. Is that the right thing to do?

    - I think I should make a "char" driver to allow access to device
      nodes and this driver is registered at loading time. Is that
      right too?
      For now I coded the following things:
      - driver_init calls pci_register_driver and register_chrdev
      - device_probe sets up the detected boards
      - when a program opens a device node, if the board has not been
        configured by the probe function, it returns an error.

    - I have to use IOCTLs to manage configuration of (eg) interrupts
      (set/get[/reset] interrupt type, read/write to only 1 line). As it
      is something frowned upon, where could I get some IOCTLs to reuse?


    As I haven't subscribed to the list could I be CC'd for the reply ?
    Thanks in advance.

Thomas
-- 
Thomas Nemeth - Ingénieur d'Études en Informatique Industrielle
                Industrial Computing Software Designer
BETAtech - 15, rue Apollo, Z.A. de Montredon, 31240, L'Union.
05 34 30 40 00 (standard)  /  05 34 30 40 09 (ligne directe)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

                 reply	other threads:[~2008-05-21 13:14 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200805211514.11584.thomas.nemeth@betatech.fr \
    --to=thomas.nemeth@betatech.fr \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®