# general pci device driver for windows 7

Status
Not open for further replies.

#### buenos

hi

i have a pci card that gets disabled by windows 7 because no driver is installed.
i have designed the card, its a prototype and i want to debug it in windows using RW. actually this is what i often do, designing new PCI cards and I olways need to test them.
since its disabled, its BAR is also disabled by windows. to be able to access the card i need the card's memory window to be accessible and for that i need a driver. all it has to do is to prevent windows from disabling its BAR.

is there s general purpose pci driver like that?

#### buenos

i just installed windows-xp and i dont have this problem there.
so, Windows-7 is not suitable for PCI prototype card debugging/bringup.
I would still like to get a DOS program to access memory, since its easier to set it running in a lab (no big HDD and no installation required).

#### srizbf

you can play with pci card with 'libpci'.
it was for linux but ported to windows IIRC.
For windows 7 , i am not sure.

#### buenos

hi

Where do i get the windows version of libpci and how do i use it? what is IIRC? Please provide more detail.
Do i need to write programs using functions from it? if yes, then how do i compile it in windows? I have borland C++5.5 usinng it with Codeblocks IDE.
Im not a software engineer, so I could write small programs with some guidance.

Also, most programs provide access to the PCIconfig space only, I need to get access to the card's memory window! So basically what I need is not a PCI-access program, but memory-access program or source code of small program.

Today I got into a new stage with my latest PCI-express card, I need an application that can actually generate bulk/burst data accesses into it (meaning that the PCIe TLPs should have more than 32bit payload data). It works with single 32bit accesses (using "RW-Everything" in Win-XP), but I neeed to test it with bulk data as well. So, the same request, an application or code that does that.

#### bigdogguru

Hi,

Checkout:

Jungo Connectivity Software

I used their PCI driver development package a year or two ago. It was very helpful in driver development. I believe they offer a free 60 day trial, with no restriction. Vista compatible, 64-bit and 32-bit versions were available at that time. I use windows XP Pro for most of my software development, at least until the final stages of deployment. Their software has USB and Bluetooth driver development as well.

#### buenos

hi

thanks,
how do i use this?

i think normally a pci/pcie card driver restricts the access to a specific card (vendor/device-ID), so it becomes its driver.
For windows-7 what i would need is a ready-made driver that forgets to restrict access, so basically allows access to any PCI device in the system, showing them as "memories". Also an application that makes use of it. I realized that windows-7 is not really suitable for PCI card prototype testing, so I will always use windows-XP or DOS for this.

For hardware validation (this is what i'm interested in, since Im a hardware designer), i need a lot less than a device driver, i need a MEMORY ACCESS PROGRAM. (windows or preferably DOS)
for example "i want to copy 128bytes from file x.bin to memory starting from PHYSICAL address 0xD0000014", I checked the base address in a pci scan program, so i dont need any pci config space related functionality, just something that handles PHYSICAL memory addresses.

#### srizbf

with libpci you can read BAR.
since you already know the mem addresses alloted in the pci card developed by you ,
then i suggest you two options:

use 'winring0'---you can access all
or use 'winio'
both will satisfy your testing requrement.
but you require some programming.

#### buenos

I have tried to downlaod the Winring0, but it seems impossible.
sourceforge: "This project has no files."
also the cvs snapshot is empty.
how do i get this winring0?
"but you require some programming. " -how much, what tools are compatible with this?

#### srizbf

you can google for winring0 files.

'programming' --requires that you write a small routine (preferably in c)
through which you can transfer your 'bin' image to the reqd address.

any windows c compiler can be used.

#### buenos

in the sourceforge page it was removed by the guy who made the program, on other sites they only had a link to the sourceforge site.

#### buenos

thanks.

probably these will help, but they require a more advanced programmer to write an application to make use oif it. Im not an andvanced or any kind of programmer im a hardware design engineer. All i can do in software is to write a 100 line DOS program. Would these work with codeblocks/mingw or in borland-c-5.5(DOS)? Im not familiar with any other or more complex compilers, also i dont have license for the microsoft compilers, and i dont have any library packages.

Is there an already created application based on these libraries? so i could just run the EXE without learning to be a software engineer.
The program called "read write everything" has access to physical memory, but it does not generate bulk/burst data transfers, so i need an app that does and maybe measures data rate as well. it doesnt need to do anything more than that.

#### bigdogguru

The WinXP lib will require Visual Studio, which by the way is available free from Microsoft in its Express Version.

Visual Studio 2010 Express

Although, you maybe able to use Codeblocks/Mingw which I believe is a Windows compatible GCC.

The Linux driver can be used in the GCC which of course is free.

There are other development packages out there, of course most cost !

---------- Post added at 18:46 ---------- Previous post was at 18:43 ----------

Actually after looking over the Code Projects lib, they used Visual C++ 6.0, XP DDK 2600 which is an older version C++ compiler. The problem is finding the older DDK, unless you have a copy.

#### buenos

in the past i have tried to compile some opensource stuff, but i always found that it needs a compiler or a library tha is not available anymore.

Actually I have two projects going in parallel:
- an on-board Actel ProASIC3 FPGA with an opensource (my own) PCI interface (to control relays)
- a pci-express data acquisition card with Xilinx Spartan-6 FPGA with xilinx PCIE endpoint and my PCI-express packet processing core.
Both are on Opencores.org: pci_mini and pcie_mini

for the second one i have to verify that it will not crash with packets having payload_size>1, and also measure the performance when reading/writing the on-board buffer memory.

#### bigdogguru

Well there aren't a lot of options when you roll-your-own interface.

Have you tried contacting the Opencores team that coded those cores and see if they have any suggestions?

#### buenos

"Opencores team that coded those cores "
-thats me. i dont need to contact myself.

#### srizbf

in that case of winring0 not available , use winio.
it can do the job that you want.

still you have towrite a small program in c .

better try mingw.

i am sure you can do the job you want with minimal time.

Status
Not open for further replies.