Hi all there !!
I am facing one problem in PCI based NIC card.
The machine used is Genius Wipro 8000 A . BIOS is Award PCI/PNP 686
The procedure I follow is
1) As a NIC card, I ask 1 K memory from Bios for my registers. All space is
memory mapped. I also ask for 256 K expansion ROM space , though at present
the ROM is not present on the card as well as no provision for IO space is
provided in the config space (which is wrong, but for time being ,as I will
not be using Remote booting, it seems OK ).
2) The BIOS write the Base address of the memory allocated in the PCI Config
space.( Base address 0 )
3) My card driver reads the config space and come to know the memory region
4) Using ioremap_nocache in Linux and NdisMMapIoSpace in NDIS 3.0, I remap
the memory into another region ( physical to virtual memory mapping, as they
call it in NDIS)
5) I acess the memory address from the remapped locations thereonwords.
Now the problem faced many times in Linux and sometimes in WinNT is that the
base address is found to be changed in the middle of operation.( randomly ,
sometimes after half hour run and sometimes even in minutes ). When the
driver reads any register from the remapped location , it finds all
"FFFFF... ". Upon this when I read the PCI space for base address 0 , I
found it changed.
Am I doing anything wrong ?
Is it possible for any system to change this before reboot ?
Is Any OS specific issue involved ?