Hi Folks
playing around with a PCI IO card that has four seperate blocks of registers on board. One block is mapped to IO space and can be read without any trouble. The remaining blocks are all mapped to memory with the mmap kernel call. Now for the problem - If I try to read from a nonexistant register, the computer locks up completely. Although I have some data on the card, there is holes in the register map for optional plug in modules. Trouble is, I do not know where all these holes are...
Question - Is there a nonblocking call that I can use to read from the PCI card without locking up the system ?
Regards, Paul.
AFAIK this is a feature of PIC> You *must not* try to access non-existent IO addresses.
On 22-May-2002 Paul wrote:
Hi Folks
playing around with a PCI IO card that has four seperate blocks of registers on board. One block is mapped to IO space and can be read without any trouble. The remaining blocks are all mapped to memory with the mmap kernel call. Now for the problem - If I try to read from a nonexistant register, the computer locks up completely. Although I have some data on the card, there is holes in the register map for optional plug in modules. Trouble is, I do not know where all these holes are...
Question - Is there a nonblocking call that I can use to read from the PCI card without locking up the system ?
Regards, Paul.
main@lists.alug.org.uk http://www.anglian.lug.org.uk/ http://lists.alug.org.uk/mailman/listinfo/main Unsubscribe? See message headers or the web site above!
Hi Raphael
Drats... No way of doing a hexdump of the card's memory without knowing where the holes are then ? This then leaves the problem of how to probe for the daughter modules without the system hanging if the are not plugged in.
Regards, Paul.
On Thursday 23 May 2002 17:58, Raphael Mankin wrote:
AFAIK this is a feature of PIC> You *must not* try to access non-existent IO addresses.
I'm no expert on PCI, but there is a PCI 'registration' area where you can find what which cards are there. Unlike ISA, you do not have to probe.
On 23-May-2002 Paul wrote:
Hi Raphael
Drats... No way of doing a hexdump of the card's memory without knowing where the holes are then ? This then leaves the problem of how to probe for the daughter modules without the system hanging if the are not plugged in.
Regards, Paul.
On Thursday 23 May 2002 17:58, Raphael Mankin wrote:
AFAIK this is a feature of PIC> You *must not* try to access non-existent IO addresses.
main@lists.alug.org.uk http://www.anglian.lug.org.uk/ http://lists.alug.org.uk/mailman/listinfo/main Unsubscribe? See message headers or the web site above!
Hi Raphael
There is a series of functions defined in pci.h associated with probing and configuring the card - One structure in particular will return with all the memory and IO base address pointers. These are normally programmed at the time of manufacture and often declare more memory than is actually on board (graphics cards are the best example here). An upgrade path is allowed for without having to resort to reprogramming the registers.
The problem I have is these daughter modules plug into one of the memory blocks without modifying the PCI configuration registers - There could be several of these modules plugged in to any one PCI card. The only way of determining which modules (if any) are installed is to do a read for an ID string every 0x80 bytes or so.
Going to have to see what happens with a 2Mb video card that claims to map 32Mb (data from /proc/pciregions).
Regards, Paul.
On Thursday 23 May 2002 20:21, Raphael Mankin wrote:
I'm no expert on PCI, but there is a PCI 'registration' area where you can find what which cards are there. Unlike ISA, you do not have to probe.