Hello I am trying to port a vme driver for a VMIC-7750, a single board computer with an Intel architecture and a PCI to VME bridge. PCI-VME Bridge ============= The bridge is a FPGA that links the PCI bus and the VME bus by mapping part of the address range of the VME bus into a memory block of the PCI bus. Tundra, the chip manifacturer, calls this a "window". Up to 8 windows can be dynamically allocated. There are 2 types of windows, a master window, and a slave window. If configured as master window, the bridge acts as VME-master on the bus, i.e. writing or reading into the window from the PCI side results in transactions on the VME bus. If configured as slave, a VME master can write or read into the allocated VME addresses. That then triggers a transaction on the PCI bus. The Driver ======== The ported driver compiles, and links -- data however seems not to transferred over the PCI->VME bridge. I can write via an application into the window, and read from it -- I do however not receive the data I am expecting. I had this driver running a couple of years ago with an 2.4 kernel. I have not deep inside into the kernel development - that leaves me clueless on how to debug the driver. The driver is available here: https://daq-plone.triumf.ca/HR/vmic/vmisft-7433-3.4.tar.gz/view Changes: ======== To accommodate the 2.6 kernel, I did the following changes to the driver code located in misft-7433-3.4/vme_universe/module a) Changed all MODULE_PARM to module_param b) Changed all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL c) Changed "vma->vm_flags |= VM_RESERVED | VM_LOCKED | VM_IO | VM_SHM" to vma->vm_flags |= VM_RESERVED | VM_LOCKED | VM_IO; d) Changed "return remap_page_range(vma, vma->vm_start, vma->vm_pgoff << PAGE_SHIFT,vma->vm_end - vma->vm_start, vma->vm_page_prot);" to "return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff << PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot);" e) Changed "if (request_irq(universe_pci_dev->irq, universe_isr, SA_SHIRQ, MODULE_NAME, universe_pci_dev)" to "if (request_irq(universe_pci_dev->irq, universe_isr, IRQF_SHARED, MODULE_NAME, universe_pci_dev)" Questions ========= a) the number of arguments for MODULE_PARAM allowed optional parameters in 2.4, like MODULE_PARM(location_monitor, "2-2i"). Is there a mechanism like that available in the 2.6 series ? b) Is there an flag replacing VM_SHM ? c) I googled for the kernel procedures. The thread below seems describe a similar issue. A driver working with 2.4 did no longer work with 2.6. This could be traced back remap_pfn_range. Are there alternativs to remap_pfn_range ? http://mhonarc.axis.se/dev-etrax/msg08036.html I would appreciate suggestions on how to debug this. It there are questions that require clarification from you side, I will be happy to provide this. Thanks Tilman