Frederic,

        I am not sure if I can help, but I can suggest a few things to try:

> ... description of problem deleted...
> ... Code which obviously finds the PCI device deleted...
> 
>   pci_read_config_dword (dev,0x20,&val);
>   LOOKUP =  ioremap(val,(u32)0x40000);
> #ifdef DEBUG
>   printk("@LOOKUP = 0x%x %x\n",LOOKUP,val);
> #endif
>   if(check_region(*LOOKUP,0x40000)) {
>     printk("Piraq Lookup Table is locked by someone else\n");
>   }
>   request_region(*LOOKUP,0x40000,"PII_lookup");

        Have you tried check_mem_region and request_mem_region?  They would
seem to be the appropriate incantations here.  Alternatively, if you know
that you are the only one using the board you can just ignore the
check/request mechanisms entirely.  I know that this is bad form, but I am a
fan of expedience over form in such cases.

        I would also use the mnemonics for the PCI config words, rather than
the explicit numbers, e.g., PCI_BASE_ADDRESS_4 for 0x20.  These are defined
in <linux/pci.h>.  Who knows what you may find on other architectures.

> Under /proc/ioports I can see all my request except the one for the
> LOOKUP.

        I believe that your request_regions for the other areas are just
getting lucky.  /proc/ioports dutifully reports whatever has been requested
and approved (I expect).  Try the check_mem_region / request_mem_region and
see if that does not provide a more satisfactory result.

Regards,

Steve

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to