I have developed the PCI-device for which it is necessary 128 bytes of ports of input-output, 512 Kb of memory and one interrupt. When I install 4 devices simultaneously, BIOS allocates for them necessary resources, windows 98 allocates resources only for 3 devices. And Windows XP at all it does not want to be loaded ("Blue screen" before installation of drivers).
Problem with PCI cards
Oct 06, 2003
10 Replies
I have developed the PCI-device for which it is necessary 128 bytes of ports of input-output, 512 Kb of memory and one interrupt. When I install 4 devices simultaneously, BIOS allocates for them necessary resources, windows 98 allocates resources only for 3 devices. And Windows XP at all it does not want to be loaded. Why?
Followup to: By author: snipped-for-privacy@yahoo.com (irum4) In newsgroup: comp.arch.fpga
Check through *all* the bits in the configuration space header to make sure you match the specification.
-hpa
at work, in private!
If you send me mail in HTML format I will assume it's spam.
"Unix gives you enough rope to shoot yourself in the foot."
Architectures needed: ia64 m68k mips64 ppc ppc64 s390 s390x sh v850 x86-64
Vendor ID & Device ID 0007524d Command &Status 02000187 04800000 00008000 0000bc01 f4400008 00000000 00000000 00000000 00000000 00000000 091e0000 00000000 00000000 00000000 00000103
Um,
You've got completely stupid values for BAR0 and BAR1. Go re-read the PCI spec.
I've developed a couple of debuggers that run on Win98 and Win95 that let you look at (and modify) PCI config registers as well as peek and poke locations in the different BAR address spaces.
Take a look at:
formatting link
The original version, DBG.EXE, has a built-in Forth interpreter that allows you to write sophisticated test scripts/programs without having to learn how to map memory in the X86 architecture.
Unfortunately, Forth is like Pig-Latin to most people, so the newer version of the code has an internal C interpeter to handle test scripts/programs. The newer code is called (surprise) CDBG.
The original DBG gets little support or attention at this point. If you use it and find a bug, I may or may not look into the problem.
CDBG get more attention from me. I'll probably look at re-produceable bugs that are reported to me. I already know that the C interpreter tends to have occasional problems recovering from syntax errors and accesses to pointers out-of-range.
Both tools have been VERY useful in helping me debug PCI cards.
We also have Linux and Win2k versions of CDBG, but these aren't for public consumption yet.
John Providenza
spec.
The drivers for XP are different than the drivers for 98. If you put 3 boards in and it works how you want it then the boards and the hardware design work. If you put in more boards and some don't work then you have a driver problem. I can almost guarantee that you will need a new driver for XP.
If you need any consulting let me know...
Steve
spec.
_Are_ these completely stupid if the host has performed the memory mapping configuration?
BAR0 is IO space mapped to 0xBC00
BAR1 is memory space which is pre-fetchable from
0xF4400000 to 0xF4800000?
Nial Stewart
------------------------------------------------ Nial Stewart Developments Ltd FPGA and High Speed Digital Design
formatting link
Followup to: By author: "Nial Stewart" In newsgroup: comp.arch.fpga
It's actually impossible to know without knowing what the powerup values are and which bits are read/write. Just posting a snapshot in time is pretty useless -- you need to go and check the proper semantics of all your bits.
-hpa
at work, in private!
If you send me mail in HTML format I will assume it's spam.
"Unix gives you enough rope to shoot yourself in the foot."
Architectures needed: ia64 m68k mips64 ppc ppc64 s390 s390x sh v850 x86-64
Aye, but they could be valid values after config OK, couldn't they?
I don't think Andy was correct in saying the BAR0 and BAR1 values are completely stupid without more info.
?Nial
------------------------------------------------ Nial Stewart Developments Ltd FPGA and High Speed Digital Design
formatting link
Followup to: By author: "Nial Stewart" In newsgroup: comp.arch.fpga
The BAR0/1 values look plausible, yes.
-hpa
at work, in private!
If you send me mail in HTML format I will assume it's spam.
"Unix gives you enough rope to shoot yourself in the foot."
Architectures needed: ia64 m68k mips64 ppc ppc64 s390 s390x sh v850 x86-64
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required