port linux driver on qnx

(I pre-apologize for my english)

I’ve got (damned) isa card that must be tested/used.
in the package sold with the card there are windows drivers and linux(I think red hat) and the respective sources.
I need the qnx driver so I sayd “ok, I’ll do”, so build up a resource manager and I cutpasted(with the right modifications) the IO functions from the original drivers.
the res.man. work correctly but it seems that the board is not working…
I think it’s a problem of addressing so I try to mmap the device with no good results.
I’ve tryed to read directly from the registers but there’s must be something wrong because i can read only 0xFF or the some value that are the same with or without the board installed on the system…

with the driver is given a api library so I tryed to use that, but the problem seems the same: when I load the card it return a “board not found” error…

at this point someone can think “it’s broken” but unluckly it’s not…

sayd in this way (I know) it not seems a painful problem but I think I’ve tryed a very lot of things from write in the registers what it need to work, to spit on the board in a foolish raptus :smiley:

the thing that I can’t understand is where is the board located in the memory! this card have a jumper addressing too but if I try to read that location the board is not present…

I know this are too few informations but really I don’t know what to say…

I don’t know why but I attached the packet gives with the board…

more informations:
jumper address: 0xD0000
board model: CEI-420A
os: QNX 6.3

I think that in about 2 days I will shot it with a gun!!

maybe you should post some of your code (the mmap part and how you access it)

I found that the only way to access the registers is not using in16/out16 but:

[code]volatile uint32_t *regbase;

ThreadCtl(_NTO_TCTL_IO, 0);

regbase = mmap_device_memory(NULL, ARINC_PAGE,PROT_READ|PROT_WRITE|PROT_NOCACHE, 0,dev_base_address);[/code]

where
ARINC_PAGE = 0x1FF
dev_base_address = 0xD0000

and so use regbase[i] for referencing to the register(I don’t know if this is right english, but surely this way work fine :smiley:)

That means the hardware isn’t using IO space but memory space. As I a said in another post, this is not a QNX concept by a x86 concept.