2007-06-24 19:44:24

by Robert Hancock

[permalink] [raw]
Subject: Re: character driver over PCI

ats wrote:
> have a wireless network card over PCMCIA....i need to just access
> the registers of this card and pass this register details to the user
> application.Since i will not connect to the network at this stage i
> preferred bypassing the network stack.Hence instead of a network
> driver i went ahead writing a character driver.
>
>
> I inserted the PCI module using insmod..That called PCI
> probe....Inside PCI probe i registered by character driver by calling
> register_chrdev().And i remapped the card memory by calling the
> following sequence of functions.
>
>
> pci_resource_start
> request_mem_region
> ioremap
>
> Then i created a device using mknod and called the open function of
> the character driver.....Till here everything works fine....
>
>
> Once the device opened i made a readl call to read the mapped
> memory..This fails..It gives me a segmentation fault.....If i call
> readl in the probe function it works fine and reads the memory at that
> location..However this call fails in open..What can be the reason...
>
> Have i proceeded the right way....Are there any additional things to
> be set..Am working on linux 2.6 kernel
>
> Attached below is my prog

I don't see where it is trying to read anything in this code. The way in
which you're doing that is likely the problem..

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from [email protected]
Home Page: http://www.roberthancock.com/