the driver of PXI data acqusition card !

my computer is PXIS-2630, qnx6.2.0, one data acqusition card:pxi2010.

the driver for pxi2010 is developed by myself.
But the computer must firstly enter into windows ,then choose restart to qnx, the driver can work correctly and printf the acqusiton data .
if directly enter into qnx, the driver will be dead in configuration, mouse an keyboard are all dead.

 in configuration, the driver try to write the EEPROM for auto-calibration.

Any advice will be appreciated ! Thanks!

Make sure you have PNP enable in the BIOS.

In Windows, usb can be used with PNP. is that to say , PNP has been enabled in the BIOS ? Thanks !

No it’s not. USB devices by definition are plug and play, but that has nothing to do with PCI/ISA plug and play.

Thanks mario.
now, In CMOS PnP/PCI configurations,there are three items to be configured:
Reset Configruation Data [disable]—>[ enable]
Resouce controlled by [Auto(escd)]
PcI/VGA palette snoop [disable]----> [enable]
But still the program cannot run correctly .

by using GDB,I have found the positon where the program begins to be dead.
BOOLEAN AD_Set_CFIFO(PPCI_DEVEXT pDevExt, U16 ch, U16 range, BOOLEAN fSimu)
{
PT_REG rPT;
U32 dwPort;
ThreadCtl(NTO_TCTL_IO, 0);
dwPort = PT_Port(pDevExt);
rPT.r = 0;
rPT.b[0] = pDevExt->wAdConfig;
if(range>3)
rPT.AdSConfig.InputSignalPolar = 0x0;
else
rPT.AdSConfig.InputSignalPolar = 0x1;
rPT.AdSConfig.AdGain = range & 0x3;
rPT.AdSConfig.AdChanSet = ch;
PT_outd(dwPort, AD_CONF, rPT.r);// begin to dead .mouse an keyboard are all dead.
//
/*some comments
#define PT_Port(pDevExt)
(pDevExt->dwPortMapAddr[1])
#define PT_outd(Port,Ofst,Value)
out32( (U32)(Port+ADL_PT
##Ofst),(U32)Value )
ADL_PT_AD_CONF is 0x20 .
*/

_2010_AD_Reset_Calibration(pDevExt, ch, rPT.AdSConfig.InputSignalPolar);
if(!fSimu) {
rPT.AdSConfig.AdChanSet = 0x4|ch;
rPT.AdSConfig.AdChanEn = 1<<ch;
PT_outd(dwPort, AD_CONF, rPT.r);
}
return TRUE;
}

And what is the value of dwPortMapAddr[1], does it make sense? does it maps to your device.

Are you sure your program sets up the device properly, maybe there is something missing from your driver. Some sort of initialisation.

Maybe the board start generating interrupts when out32 i called but the driver isn’t ready to handle interrupt?

this code is modified from the code of linux. and I don’t know why program can run correctly if computer firstly runs into windows then restart into qnx.

because windows probably sets some register in the card that your driver isn’t doing.