Skip to contentSkip to conversation

Linux PCI driver.

DISCUSSION testlaster 2 participants 5 messages Aug 18, 2014

lore
Share & tools
lore

testlaster

author
#0 lore raw

Hey Guys

Im writing a PCI driver in Linux ( Lubuntu ). Now its not an entire driver its really just a little program that will latch onto a space of ram and dump the entire content of the ram into a file.
I have done this before in a Unix/Linux based OS and it took me quite a while to figure it out.

So at startup the configuration for the PCI is already done so I wont have to do any of that myself.
I really just need to set a pointer to a register.

My problem is that I cant find the functions to do that for linux. I cant find similar functions to things like :
PCI_ATTACH()
pci_attach_device();
mmap_device_memory();

I think that is really all I need at the moment. Anybody have some ideas of where I can start looking?

Thanks and regards.

#1 lore raw
Quoted 12 lines · testlaster

Hey Guys

Im writing a PCI driver in Linux ( Lubuntu ). Now its not an entire driver its really just a little program that will latch onto a space of ram and dump the entire content of the ram into a file.
I have done this before in a Unix/Linux based OS and it took me quite a while to figure it out.

So at startup the configuration for the PCI is already done so I wont have to do any of that myself.
I really just need to set a pointer to a register.

Quoted 8 lines

My problem is that I cant find the functions to do that for linux. I cant find similar functions to things like :
PCI_ATTACH()
pci_attach_device();
mmap_device_memory();

I think that is really all I need at the moment. Anybody have some ideas of where I can start looking?

Have you read the book, Linux Device Drivers, 3rd edition, it's free online and has a whole chapter on PCI that should answer these questions for you.

If not, please feel free to post your code and we will be glad to review it.

thanks,

greg k-h

author
#2 lore raw

Hi Greg

Yes I have read the book and some of it does make sense to me.

What doesnt make sense though is that my pci.h file that I have found /include/linux only has like 30 lines max?

None of the functions in the book are in the header.

Thanks
Testo

Quoted 31 lines · Greg KH
Quoted 12 lines · testlaster

Hey Guys

Im writing a PCI driver in Linux ( Lubuntu ). Now its not an entire driver its really just a little program that will latch onto a space of ram and dump the entire content of the ram into a file.
I have done this before in a Unix/Linux based OS and it took me quite a while to figure it out.

So at startup the configuration for the PCI is already done so I wont have to do any of that myself.
I really just need to set a pointer to a register.

Quoted 8 lines

My problem is that I cant find the functions to do that for linux. I cant find similar functions to things like :
PCI_ATTACH()
pci_attach_device();
mmap_device_memory();

I think that is really all I need at the moment. Anybody have some ideas of where I can start looking?

Have you read the book, Linux Device Drivers, 3rd edition, it's free online and has a whole chapter on PCI that should answer these questions for you.

If not, please feel free to post your code and we will be glad to review it.

thanks,

greg k-h

#3 lore raw
Quoted 6 lines · testlaster

Hi Greg

Yes I have read the book and some of it does make sense to me.

What doesnt make sense though is that my pci.h file that I have found /include/linux only has like 30 lines max?

$ wc include/linux/pci.h 
 1832  7982 65670 include/linux/pci.h

are you sure you are looking at the kernel source tree?

Quoted 1 line

None of the functions in the book are in the header.

Then I don't think you are looking at kernel source, but perhaps the header file for libpci in userspace?

good luck,

greg k-h

author
#4 lore raw

I think you are right Greg

I eventually after looking for alternative header folders I found one here that seems to be more in the line of what I am looking for .

/usr/src/linux-header-3.13.0-32-generic/include/linux/pc.h .

This should work right?

Quoted 24 lines · Greg KH
Quoted 6 lines · testlaster

Hi Greg

Yes I have read the book and some of it does make sense to me.

What doesnt make sense though is that my pci.h file that I have found /include/linux only has like 30 lines max?

$ wc include/linux/pci.h
  1832  7982 65670 include/linux/pci.h

are you sure you are looking at the kernel source tree?

Quoted 1 line

None of the functions in the book are in the header.

Then I don't think you are looking at kernel source, but perhaps the header file for libpci in userspace?

good luck,

greg k-h

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies