I want to develop a simulator of PCI card on QNX4.25 without real PCI card installed on the QNX system.
Currently, the QNX4.25 will use API functions such as _CA_PCI_Find_Device(), inp(), outp() and so on to configure and read/write the I/O port of PCI.
Currently, I can use the “show_pci” command to show some PCI info, but it didn’t contains the PCI card that I want.
I have two questions.
Is it possible for that to create and register a virtual PCI card so that the QNX4.25 API function _CA_PCI_Find_Device() can detect it?
As I can’t acess the link ftp.qnx.com:/usr/free/qnx4/os/utils/misc/pci_utils.tgz. Can any one give me a package of below source code “/usr/free/qnx4/os/utils/misc/pci_utils.tgz” for PCI device drive as described in below link qnx.com/developers/qnx4/qnx4 … ?code=9470?
For QNX-6 the PCI BIOS is a process. I don’t recall if this is true for QNX 4 or not. Assuming it is, if you reverse engineer this process and/or get the source from QNX you could in principle create an interface wherein you could create a virtual card. However QNX 4 is rather late in life for you to be seriously thinking along these lines.
Thanks for you help.
I knew that we can use _CA_PCI_FIND_Device to find real PCI device that can be detected by QNX4.25. I want to use virtual PCI device to be detected by this _CA_PCI_Find_Device on QNX4.25.
The PCI devices info are stored on I/O port address begins with 0x80000000, I can’t write any data to the I/O port address begin with 0x80000000 (but I can read the data on I/O port address 0x80000000), so that the virtual PCI devices can’t be detected by _CA_PCI_FIND_Device.
I’ve seen that QNX6 system has function to mapping the I/O port address to the memory address, then I can use the memory address to operate the hardware (update the data of hardware ).
I didn’t see any functions that can map I/O port address to memory address on QNX4.25. Can you help to give some suggestions?
By the way, I installed QNX4.25 in Vmwawre virtual machine. If I configure two virtual Ethernet cards in the vmware setting, these two virtual Ethernet cards can be detected by QNX4.25 show_pci command. What I want to achieve is to create a virtual PCI card that can be detected by the QNX4.25 show_pci command, which is similar as Vmware created two virtual Ethernet cards.