TODO ==== API === DMA Resource Allocation incomplete ---------------------------------- The current DMA resource Allocation provides no means of selecting the suitability of a DMA controller based on it's supported modes of operation, as opposed to the resource allocation mechanisms for master and slave windows: struct vme_resource *vme_request_dma(struct device *dev); As opposed to: struct vme_resource * vme_master_request(struct device *dev, vme_address_t aspace, vme_cycle_t cycle, vme_width_t width); The TSI148 can perform, VME-to-PCI, PCI-to-VME, PATTERN-to-VME, PATTERN-to-PCI, VME-to-VME and PCI-to-PCI transfers. The CA91C142 can only provide VME-to-PCI and PCI-to-VME. Add a mechanism to select a VME controller based on source/target type, required aspace, cycle and width requirements. Master window broadcast select mask ----------------------------------- API currently provides no method to set or get Broadcast Select mask. Suggest somthing like: int vme_master_bmsk_set (struct vme_resource *res, int mask); int vme_master_bmsk_get (struct vme_resource *res, int *mask); Interrupt Generation -------------------- Add optional timeout when waiting for an IACK. CR/CSR Buffer ------------- The VME API provides no functions to access the buffer mapped into the CR/CSR space. Mailboxes --------- Whilst not part of the VME specification, they are provided by a number of chips. They are currently not supported at all by the API. Core ==== - Rename vme_master_resource's "pci_resource" to be bus agnostic. - Improve generic sanity checks (Such as does an offset and size fit within a window and parameter checking). Bridge Support ============== Tempe (tsi148) -------------- - Driver can currently only support a single bridge. - 2eSST Broadcast mode. - Mailboxes unsupported. - Improve error detection. - Control of prefetch size, threshold. - Arbiter control - Requestor control Universe II (ca91c142) ---------------------- - Driver can currently only support a single bridge. - DMA unsupported. - RMW transactions unsupported. - Location Monitors unsupported. - Mailboxes unsupported. - Error Detection. - Control of prefetch size, threshold. - Arbiter control - Requestor control - Slot detection Universe I (ca91x042) --------------------- Currently completely unsupported.