Re: a pci + linux query
From: newsgroup (newsgroup_at_virtualhome.plus.com)
Date: Sun, 19 Oct 2003 19:31:03 +0100
Here is my understanding having work a bit with PCI devices but not PCI
Prefetchable memory is typically memory of some kind where the data
contents will not change once accessed. Typically PCI reads/writes
happen in bursts across the bus for this to work often the data is read
into a set of FIFOs and then presented on the bus. So prefetchable
memory is memory for which you can do burst accesses. This is usually
just SDRAM, or SRAM that is memory maped into PCI space.
Non-prefetchable is usually a set of PCI memory mapped registers. For
this type of memory you cannot do burst accesses and single-cycle PCI
accesses are only possible.
I don't konow about Machine check interrupts - sorry!
P.S> In writing PCI device drivers be careful of out of order code
execution i.e. the order in which your code is written to access PCI may
be changed by compiler optimisations so you need memory barriers to
ensure correct execution.
1. readw( &val, addr );
2. writew( val, addr );
3 readw( & val ,addr );
1. readw( &val, addr )
2. writew( val, addr )
3 readw( & val ,addr )
In order to guarentee the order of execution.
nikhil bhargav wrote:
> Hello friends,
> I am at present working on writing a device driver in linux for pci
> bridge that is present in mpc 8266 having a real time favor of linux
> OS on board. Actually our purpose is to use design a card which have
> two processors on it and use pci bus to communicate between them. I
> have some conceptual doubts regards to pci bus.
> Q. What is prefectable memory and non-prefetchable memory in case of
> mpc8266 pci controller?
> Q. How is access of a pci prefetchable memory different from a non
> prefetchable memory?
> Q. Are Machine check interrupts some thing similar to probe signals in
> device driver context?
> please help me out.