Skip navigation.
Home
The QNX Community Portal

View topic - virtual PCI card driver for QNX4.25

Page 1 of 1

virtual PCI card driver for QNX4.25

PostPosted: Thu Feb 25, 2016 12:43 am
by davesliu
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.
1. 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?
2. 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 http://www.qnx.com/developers/qnx4/qnx4 ... ?code=9470?

Thanks in advance :-)

Re: virtual PCI card driver for QNX4.25

PostPosted: Wed Mar 02, 2016 1:13 am
by maschoen
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.

Re: virtual PCI card driver for QNX4.25

PostPosted: Tue Mar 15, 2016 1:28 am
by davesliu
maschoen wrote: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.