I have just upgraded from QNX 6.1 to QNX 6.2. I have written a resource
manager, which is talking with a PCI card using memory mapped registers. The
addresses to these registers are returned from the C function
mmap_device_memory, which is converting a physical address to the process
The problem is that when accessing the PCI Local configuration registers
using the address returned from the mmap_device_memory function (on a PLX
9050 chip on the PCI card) no real values are returned. They are all zero.
The memory-mapped area is 128 bytes long.
When I do the same test on the QNX 6.1 version, these register values seems
correct, using the same source code.
I have used DDD to check the status of each address pointer, but it seems
that they are OK. Using the QNX utility “pci -v”, I can verify that the PCI
base addresses are read correctly.
The BIOS mapped PCI base address values are (from pci -v utility):
PCI Mem Address = 0xdfffef80 128 bytes length
PCI Mem Address = 0xdfffee00 256 bytes length
PCI Mem Address = 0xdfff0000 32768 bytes length
It is the first address, which is mapped to the PCI local configuration
register on the PLX 9050 chip.
Can somebody tell me way I can’t access the memory mapped PCI registers on
the QNX 6.2 operating system?
Telenor Satellite Broadcasting