Windows 95 Driver: System parity error

Hello,

I am writing a windows 95 Device driver for a PCI ATM adapter with an
on-board 2MB RAM.

Problem:
The access to the on board RAM are through two registers : a data register
and a control register. The data register contains value to be written in
the RAM at a location specified in the control register. The system gives
a
system parity error when any value greater than 0xc1 is written in to the
control register.

Details:
The card register space of 1MB which include these two registers are
mapped
in to the virtual address space using NdisMapIOSpace.
After writing any value greater than 0xc1 in to the control register, the
virtual address of the control register becomes invalid. I tried dumping
the
contents of the register, it lead to a crash.
I tried using _PageReserve , _PageCommitPhys, _LinLockPage functions for
mapping the card memory, it made no difference.
The physical address of the card , as read from the PCI configuration
space
is 0xff000000. I have observed that mapped memory access times are very
large.
The data and the control register are at the end of the page i.e. at
offsets
807f8 and 807fc resp from the mapped base address.
When I mapped just these two registers, I could write values 0 to 0xE0 in
to
the control register.
I have carried out the SOP of changing adapters, system, OS versions. But
the problem is very consistent.

Queries:
Is there a limitation to the amount of memory that we can map in windows
95.
Can any one shed light on the behavior of the driver.

Thanks,
Vinay.

Vinaychandra A V S
Software Engineer,
Wipro Technologies.
BANGALORE, 560 068.
Phone :- +91-80-5732293/96 ext 3064.
Fax :- +91-80-5732696.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com